Home
OCaml (aka Objective Caml), а также прочие ML'и, F#, Coq, etc
ocaml@conference.jabber.ru
Понедельник, 14 октября 2013< ^ >
f[x] установил(а) тему: OCaml / ОКэмл / Камль -- http://ocaml.org/ | Камло - http://camlunity.ru/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire | Мойте руки перед чатом | KEEP CAML AND CURRY ON | F#, Coq - де-факто онтопик
Конфигурация комнаты
Участники комнаты

GMT+4
[01:00:30] Typhon вышел(а) из комнаты
[01:09:07] klapaucius вышел(а) из комнаты
[02:01:40] Typhon вошёл(а) в комнату
[02:22:41] Typhon вышел(а) из комнаты
[02:39:59] strobegen вышел(а) из комнаты
[03:05:42] Typhon вошёл(а) в комнату
[03:28:38] Typhon вышел(а) из комнаты
[04:09:30] komar вышел(а) из комнаты: Replaced by new connection
[04:09:30] komar вошёл(а) в комнату
[04:10:20] Typhon вошёл(а) в комнату
[04:27:02] Typhon вышел(а) из комнаты
[04:36:02] tilarids вошёл(а) в комнату
[04:42:56] n06r1n вошёл(а) в комнату
[05:10:55] Typhon вошёл(а) в комнату
[05:17:29] n06r1n вошёл(а) в комнату
[05:17:29] n06r1n вышел(а) из комнаты
[05:27:16] Typhon вышел(а) из комнаты
[05:50:26] ForNeVeR вошёл(а) в комнату
[06:06:15] f[x] вошёл(а) в комнату
[06:11:26] Typhon вошёл(а) в комнату
[06:23:08] n06r1n вышел(а) из комнаты
[06:23:25] n06r1n вошёл(а) в комнату
[06:27:31] Typhon вышел(а) из комнаты
[06:33:53] tilarids вышел(а) из комнаты
[06:34:11] tilarids вошёл(а) в комнату
[06:35:24] n06r1n вышел(а) из комнаты
[07:12:02] Typhon вошёл(а) в комнату
[07:31:03] Typhon вышел(а) из комнаты
[08:18:20] strobegen вошёл(а) в комнату
[09:31:53] tilarids вышел(а) из комнаты: Machine going to sleep
[09:48:44] n06r1n вошёл(а) в комнату
[09:50:22] f[x] вышел(а) из комнаты
[09:57:50] n06r1n вышел(а) из комнаты
[09:57:59] n06r1n вошёл(а) в комнату
[10:35:50] n06r1n вышел(а) из комнаты
[10:37:42] n06r1n вошёл(а) в комнату
[10:42:29] f[x] вошёл(а) в комнату
[10:58:26] ermine вошёл(а) в комнату
[11:22:01] Zbroyar вошёл(а) в комнату
[11:22:30] Typhon вошёл(а) в комнату
[11:27:47] Zbroyar вышел(а) из комнаты
[12:20:24] komar вышел(а) из комнаты: Replaced by new connection
[12:20:24] komar вошёл(а) в комнату
[12:32:52] <gds> f[x]: использую pmp (без "a"), некоторые функции показываются как "::??".  debug в _tags стоит.  как исправить?
[12:32:52] klapaucius вышел(а) из комнаты
[12:34:09] <f[x]> компилер который?
[12:35:46] <gds> 3.12.1
[12:38:15] <f[x]> нужен 4.0 для точных трейсов
[12:38:36] <f[x]> а так - можно в принципе "::?" игнорировать и всё
[12:41:41] Kakadu вошёл(а) в комнату
[12:46:28] <gds> понял.  Ну, самое главное я увидел, и даже можно проследить Суть™.  pmp годен.  А проблема удивительна -- бОльшую часть времени программа ждёт на fcntl, который берёт блокировки на файл.  При том, что программа запущена в единственном экземпляре, то есть, никто за эти блокировки не дерётся с ней.
Ещё удивительно, что программа отжирает стабильные >90% cpu.
Какие выводы тут можно сделать?  fcntl процессорожрущий?
[12:46:48] <f[x]> часто дёргается?
[12:47:39] <gds> по идее -- да, часто, берётся лок на чтение, выполняется чтение небольшого куска файла (типично 130 байтов), лок снимается.
[12:49:17] <gds> а, в другой половине случаев сценарий тот же, только читается примерно 20 байтов.
[12:49:20] <f[x]> я бы проверил тупым сишным кодом
[12:49:25] <f[x]> скорость
[12:50:19] <gds> думаешь, лажа где-то в unix_lockf?
[12:53:51] <gds> посмотрел, нет там лажи.  С другой стороны, я беру локи с "ждать лок, пока не возьмётся", а там {enter,leave}_blocking_section.  Может оно влияет?  Хрень какая-то.
[12:56:17] komar вышел(а) из комнаты: Replaced by new connection
[12:56:18] komar вошёл(а) в комнату
[12:56:31] <f[x]> enter/leave конечно не бесплатные но не думаю что настолько
[12:56:52] <f[x]> а, так сделай проще, прогони этот же тест только убери локи
[12:56:55] <f[x]> и сравни скорость
[13:04:24] <gds> всё гениальное просто :)  так и сделаю.
[13:08:28] <gds> с локами:
real    0m20.155s
user    0m17.029s
sys    0m3.040s
без локов:
real    0m18.072s
user    0m16.941s
sys    0m1.076s
не понимаю, почему pmp показывает висение на fcntl.
[13:12:42] <f[x]> хм, а можешь показать pmp вывод?
[13:12:51] <gds> с локами или без?
[13:12:59] <f[x]> с
[13:13:32] n06r1n вошёл(а) в комнату
[13:13:33] n06r1n вышел(а) из комнаты
[13:16:56] <gds> с опциями "1000 итераций, обрезать по первым 8 функциям": http://paste.in.ua/8850/ , первая строка это отладочная печать.
[13:18:41] <gds> нашёл возможную лажу.  time был на мелком тесте, а pmp на большом -- там данных больше, локов больше.  сейчас померяю time на большом тесте с локами и без.
[13:25:12] Zbroyar вошёл(а) в комнату
[13:26:57] <gds> во, совсем другое дело:
с локами:
real    3m36.846s
user    1m47.375s
sys    1m38.598s
без локов:
real    2m2.773s
user    1m46.883s
sys    0m6.728s
[13:27:22] <f[x]> sys 50% - приехали
[13:28:01] <gds> неужели fcntl такое тормозное унутрях?
[13:28:06] <gds> говно же.
[13:30:06] <f[x]> может стоит свои локи запилить?
[13:30:18] <f[x]> через shmem
[13:30:26] <f[x]> или как это принято у белых людей?
[13:31:12] <gds> да вот туда и думаю.  А как у белых людей принято -- мне и самому интересно.
[13:31:41] <gds> ау, белые люди, подскажите!
[13:32:13] Zbroyar вышел(а) из комнаты
[13:33:41] <gds> да, таки надо от fcntl уходить ещё по такой причине, что кое-где мне надо приоритет для читалок, а кое-где для писалок.  А в fcntl поведение только одно.  (судя по беглому гуглежу, там приоритет для читалок.)
[13:45:26] klapaucius вошёл(а) в комнату
[14:13:45] f[x] вышел(а) из комнаты
[14:21:16] f[x] вошёл(а) в комнату
[14:22:10] klapaucius вышел(а) из комнаты
[14:32:52] n06r1n вышел(а) из комнаты
[14:41:44] Typhon вышел(а) из комнаты
[14:42:47] <gds> посмотрел, в Thread нет именованных мутексов (которые для межпроцессного взаимодействия).  В ExtUnix тоже.  Ну и семафоров.  Поэтому вопрос: какие мутексы и семафоры стандартно используются во всех или почти во всех юниксах?  man что?
[14:45:04] <f[x]> sem_open
[14:45:21] Typhon вошёл(а) в комнату
[14:45:24] <f[x]> в ocamlnet есть вроде
[14:45:55] <gds> а теперь обернём голову вокруг мутексов и семафоров, чтобы нахреначить rwlock...
[14:46:22] <gds> f[x]: а про мутексы куда смотреть?
[14:47:26] komar вышел(а) из комнаты: Logged out
[14:47:28] komar вошёл(а) в комнату
[14:47:52] Typhon вышел(а) из комнаты: Replaced by new connection
[14:48:02] Typhon вошёл(а) в комнату
[14:48:56] <f[x]> мутексы - частный случай семафоров - не?
[14:51:45] <gds> вроде да.  Но чото я туплю сейчас.
В общем, благодарю за помощь.  Буду чесать репу.
[14:57:44] <gds> как же хорошо мне жилось последние несколько лет без всяких там мутексов, семафоров и прочего низкоуровневого говна.
[14:59:32] <f[x]> добро пожаловать, это тебе не бесконечные списки в эндофунктор засовывать
[15:00:16] n06r1n вошёл(а) в комнату
[15:01:00] <gds> от засовывания больше наслаждения.
[15:22:02] <gds> мне, оказывается, и безымянные семафоры/мутексы нужны.  Которые можно положить в общую память и дёргать им там этосамое.
[15:33:51] <gds> а, нашёл, sem_init.
[15:43:45] n06r1n вышел(а) из комнаты
[16:09:47] f[x] вышел(а) из комнаты
[16:38:11] Typhon вышел(а) из комнаты
[16:54:02] Typhon вошёл(а) в комнату
[16:54:39] Typhon вышел(а) из комнаты: Replaced by new connection
[16:54:49] Typhon вошёл(а) в комнату
[17:45:54] ermine вышел(а) из комнаты
[17:49:54] ermine вошёл(а) в комнату
[18:09:22] n06r1n вошёл(а) в комнату
[18:09:36] ForNeVeR вышел(а) из комнаты
[18:11:06] f[x] вошёл(а) в комнату
[18:11:30] n06r1n вышел(а) из комнаты
[18:12:43] ForNeVeR вошёл(а) в комнату
[19:08:51] Kakadu вышел(а) из комнаты
[19:13:10] komar вышел(а) из комнаты
[19:14:27] komar вошёл(а) в комнату
[19:55:00] n06r1n вошёл(а) в комнату
[20:09:47] f[x] вышел(а) из комнаты
[20:12:16] tilarids вошёл(а) в комнату
[21:17:00] n06r1n вышел(а) из комнаты
[21:53:32] Typhon вышел(а) из комнаты
[22:44:24] Kakadu вошёл(а) в комнату
[22:59:22] ermine вышел(а) из комнаты
[23:47:13] Typhon вошёл(а) в комнату
[23:56:41] tilarids вышел(а) из комнаты: Machine going to sleep
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!