[08:00:41] <genieprox> Mono -- говно: "Рапортую о том как опасны динамические массивы    

На работе несколько лет иногда у клиентов в программе память текла "на ровном месте" ни с того ни с сего. Дорастает до 3.5 гигабайтов и на что израсходовано - не понятно. В лабораторных условиях воспроизвести не получалось.

На что только не думали...

И вот, сейчас думаем, что вроде как нашли...

Там иногда (в зависимости от действий клиентов) временно создаются большие динамические массивы. Используется Mono 2.4. Сборщик мусора не перемещающий. Вот и наступает фрагментация памяти.

Вывод.

Хочешь динамические массивы - заодно хоти и перемещающий сборщик мусора.

А если у тебя нет перемещающего сборщика мусора, тогда вместо одного большого динамического массива используй цепочку массивов небольшого фиксированного размера."
[09:50:00] <valexey_> Это не моно говно, это руки из жопы :-)
[09:51:33] <valexey_> Точнее - это привычка не думать о памяти и её фрагментации. Заметь, такая проблема возникла только в шарповой части нашего проекта
[09:52:00] <valexey_> А в с++ части все хорошо и фрагментации нет
[09:52:41] <valexey_> А ее там нет потому, что там сразу были написаны свои аллокаторы и пулы.
[09:52:42] <genieprox> проблема возникла в моновой части вашего проекта. смените GC на нормальный и проблема исчезнет
[09:53:47] <valexey_> Ога, но возникнет какая-нибудь другая проблема :-)
[09:53:54] <genieprox> так в ББ GC такой же?
[09:54:02] <valexey_> Я это с Явой уже проходил
[09:54:32] <valexey_> Да. И в ObjC тоже такой же
[09:54:51] <valexey_> И, видимо, в D тоже
[09:56:06] <valexey_> Кстати, у ghc сборщик умеет проводить дефрагментацию кучи?
[09:57:04] <genieprox> вроде да
[09:57:39] <genieprox> вапще в ghc несколько разных сборщиков
[09:59:06] <valexey_> В наших задачах ведь по сути реалтайм при высоких загрузках. Мое мнение - тут полностью полагаться на сборщик нельзя. То есть легко порхать по коду не думая о памяти не выйдет
[10:00:04] <genieprox> ну есть же и софт-реалтаймные GC
[10:00:16] <valexey_> Поэтому C++ это самое оно :-)
[10:00:38] <valexey_> Они работают не эффективно
[10:01:27] <valexey_> То есть с ними загрузка процессора повышается в несколько раз
[10:03:27] <valexey_> Но Сергей конечно отжег. При чем тут вообще массивы с размером неизвестным на этапе компиляции?
[10:03:59] <valexey_> Размер важен возможно, но не их динамичность
[10:06:41] <subj_rs> http://nnm.ru/blogs/crazymax21/krik_dushi_3/
[10:15:52] <genieprox> http://web.cecs.pdx.edu/~apt/icfp10.pdf "A Certified Framework for Compiling and Executing Garbage-collected Languages"
[10:21:36] <valexey_> Это что такое?
[10:22:31] <genieprox> We describe the design, implementation, and use of a machinecertified
framework for correct compilation and execution of programs
in garbage-collected languages. Our framework extends
Leroy’s Coq-certified Compcert compiler and Cminor intermediate
language. We add: (i) a new intermediate language, GCminor, that
includes primitives for allocating memory in a garbage-collected
heap and for specifying GC roots; (ii) a precise, low-level specification
for a Cminor library for garbage collection; and (iii) a proven
semantics-preserving translation from GCminor to Cminor plus
the GC library. GCminor neatly encapsulates the interface between
mutator and collector code, while remaining simple and flexible
enough to be used with a wide variety of source languages and
collector styles. Front ends targeting GCminor can be implemented
using any compiler technology and any desired degree of verification,
including full semantics preservation, type preservation, or
informal trust.
As an example application of our framework, we describe a
compiler for Haskell that translates the Glasgow Haskell Compiler’s
Core intermediate language to GCminor. To support a simple
but useful memory safety argument for this compiler, the front end
uses a novel combination of type preservation and runtime checks,
which is of independent interest.
[10:25:21] <valexey_> Гм. Что то я не понял таки что это за хрень
[10:26:29] <genieprox> ну сборщик мусора сертифицированный вроде как
[10:26:56] <genieprox> плюс специализированный язык для использования этого сборщика
[10:27:13] <genieprox> упрощённый диалект сей, затеоченный под GC
[10:27:53] <genieprox> o7
[10:27:54] <тихий бот> valexey, как там Оберон-07 поживает?
[10:28:03] <valexey_> А какая мне разница сертифицированный сборщик или нет? И сертифицированнный кем?
[10:28:33] <genieprox> ну а какая разница -- сертифицированное ПО или нет?
[10:28:52] <genieprox> тьфу! НЕ СЕРТИФИЦИРОВАННЫЙ, А ВЕРИФИЦИРОВАННЫЙ ((
[10:28:57] <genieprox> упс капс )
[10:29:05] <valexey_> Кстати, микрософт видит таки основным языком для винды именно с++ http://habrahabr.ru/blogs/htranslations/119124/
[10:29:28] <genieprox> просто они поняли, что на шарпе офис будет тормозить дико ))
[10:29:59] <genieprox> сертифицированный системой доказательства теорем Coq )))
[10:30:07] <valexey_> Гм. В названии статьи именно про сертификацию а не верификацию
[10:30:26] <genieprox> ну я так понял, имелась в виду верификация...
[10:30:58] <valexey_> Гм. А чем этот сборщик лучше чем скажем те которые есть в Яве?
[10:31:09] <genieprox> сертифицированный системой Coq -- обычно говорят -- верифицированный
[10:31:20] <genieprox> ну, наверное багов в нём нет
[10:31:43] <valexey_> А в Явовом есть?
[10:31:50] <genieprox> наверное есть ))
[10:32:24] <genieprox> кемиисто, у нас новые клеветы -- gc в яве -- какашка!
[10:32:36] <valexey_> Не слышал. Вот именно с багами в сборщике мусора не встречался
[10:32:54] <valexey_> С тормозами, да, но не с багами
[10:33:04] <kemiisto> Привет! Привет!
[10:33:38] <genieprox> http://www.java.net/node/702424
[10:35:31] <valexey_> Это все равно что двигать свою реализацию сортировки. Пузырьком, ога, в то время как остальные используют или быструю или слиянием. А ты толкаешь свою говоря, что оно лучше тем, что оно сертифицированно/верифицированно
[10:36:08] <genieprox> лучше пузырьковая но правильная, чем быстрая, но неправильная )))
[10:36:42] <valexey_> Это не всегда так
[10:37:27] <valexey_> Алгоритмически не совсем правильная быстрая на практике может быть меньшим злом нежели пузырек
[10:38:25] <genieprox> насчёт winc++ -- зря что ле Тони Хоар занимается верификацией ПО в майкрософте? ))
[10:39:07] <valexey_> Корректность программы зависит от скорости её работы
[10:39:22] <genieprox> каким образом?
[10:39:30] <valexey_> Прямым
[10:39:55] <genieprox> программа корректна, если для всех входных данных выдаёт правильные (корректные) выходные.
[10:40:04] <kemiisto> за конечное время
[10:40:05] <valexey_> Если ты не уложился в квант времени, то дынные станут не корректными
[10:40:12] <genieprox> скорость программы -- совершенно другая её характеристика
[10:40:14] <valexey_> Данные
[10:40:20] <valexey_> Нет
[10:40:26] <kemiisto> на практике - в обозримом будущем
[10:40:53] <valexey_> В простейшем случае ты просто потеряешь кусок данных
[10:40:57] <genieprox> > Если ты не уложился в квант времени, то дынные станут не корректными

это не имеет отношение к корректности
[10:41:10] <valexey_> И это потянет цепочку ошибок
[10:41:15] <valexey_> Имеет
[10:41:51] <valexey_> Например из за этого у меня не корректно считался пульс.
[10:42:00] <genieprox> это -- несоответствие временным характеристикам, а вовсе не корректность/некорректность
[10:42:13] <kemiisto> для реал-тайма очевидно имеет
[10:43:25] <kemiisto> https://bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/742052
[10:43:31] <kemiisto> Ололо!
[10:43:35] <kemiisto> Вот так то!
[10:44:14] <genieprox> хорошо, но для этого всё равно общий термин "Корректность" не подходит. "Временная корректность" (temporal correctness) -- так правильно
[10:44:31] <genieprox> убунту == гуано
[10:44:43] <valexey_> И обычный баг (который может быть отловлен coq) отловить руками и отладить много проще нежели тот который возникает из за не правильного времени работы программы
[10:45:55] <genieprox> ну есть же программы для проверки временных характеристик ПО -- вот ими и нужно пользоваться. но сначала нужно знать, какими должны быть эти временные характеристики
[10:46:34] <valexey_> Ну да. Программы писаные на хаскелле и coq имеют именно временную корректность — они корректны до тех пор, пока их не пытаешься использовать в реалтайме :-)
[10:46:59] <kemiisto> :-D
[10:47:05] <kemiisto> ФП! ФУ!
[10:47:08] <kemiisto> http://en.wikipedia.org/wiki/Uniform_access_principle
[10:47:16] <kemiisto> кто что думает?
[10:47:22] <genieprox> не врЕменная, а временнАя корректность
[10:47:42] <genieprox> короче, темпоральная корректность
[10:48:07] <valexey_> Это проперти что ли?
[10:48:33] <kemiisto> нет
[10:48:33] <Жаба> kemiisto, нет да!
[10:48:38] <kemiisto> не обязательно
[10:48:43] <genieprox> жаба лучше знает ))
[10:48:43] <kemiisto> вот в Скале
[10:48:47] <kemiisto> непример
[10:48:50] <kemiisto> например
[10:48:56] <genieprox> например?
[10:49:01] <kemiisto> доступ к полям объекта и к методам
[10:49:05] <kemiisto> выглядит одинаково
[10:49:14] <kemiisto> метод можно выхывать без скобок
[10:49:15] <valexey_> Для реалтайма и программирования операционок это противопаказано
[10:49:16] <kemiisto> з
[10:49:33] <kemiisto> valexey_: да
[10:49:44] <genieprox> пропертисы короче
[10:49:58] <kemiisto> http://martinfowler.com/bliki/UniformAccessPrinciple.html
[10:50:16] <kemiisto> I prefer to treat this as a special case - follow the uniform access principle unless there is a particularly slow computation (and that should be one that's been measured to be slow, not just expected to be slow).
[10:50:54] <genieprox> короче, не надо путать алгоритмическую корректность с темпоральной!!!111
[10:51:21] <kemiisto> genieprox: всё, успокойся  :-)
[10:51:31] <valexey_> И не нужно путать эти оба понятия с корректностью :-)
[10:52:09] <valexey_> Общей корректностью программы
[10:52:59] <valexey_> Отловить и исправить ошибку в быстрой сортировке много проще чем шлейф ошибок из за пузырька
[10:53:45] <valexey_> Хотя бы потому, что первое просто глазами видно в отладчике, а второе нет
[10:56:47] <genieprox> а лучше пользоваться веривицированной и сертифицированной быстрой сотрировкой, чем глючным пузырьком )))))
[11:02:17] <valexey_> Так не бывает :-)
[11:04:24] <kemiisto> GENERIC MESSAGE BUS!!!
[11:05:04] <genieprox> короче, винапи поддерживает GENERIC MESSAGE BUS!!! )))
[11:06:08] <genieprox> так, абирун был выдуман в ~1990 г, винапи был выдуман в ~1985 г. Вирт украл идею у Мелкософта!!!!!!!
[11:06:10] <kemiisto> нет
[11:06:10] <Жаба> kemiisto, нет да!
[11:06:17] <kemiisto> только абирон!!!
[11:06:25] <kemiisto> и только у тех, кому надо!!!
[11:06:28] <kemiisto> ?
[11:06:28] <тихий бот> тварь я дрожащая, или тот, кому надо?
[11:07:27] <valexey_> Гм. А теперь то у оберона явноине 3 инструкции на with
[11:07:49] <valexey_> Потому, что самого with больше нет
[11:08:36] <genieprox> да и раньше он глючный был. а всё 3 инструкции, 3 инструкции...
[11:08:49] <valexey_> То есть сам вирт эту шину собственноручно закопал
[11:09:03] <genieprox> вот так и лгут врунщики-абирунщики
[11:09:28] <genieprox> врунишки-абирунишки!
[11:10:09] <valexey_> Вообще Сергей странно инструкции считает
[11:10:21] <genieprox> Губанов == врунишка-абирунишка!!!111
[11:10:36] <genieprox> новый мем!
[11:10:38] <valexey_> Он это делает как физик а не как инженер :-)
[11:11:12] <genieprox> так он же физик! он навреное инструкции по теории относительности считал... они у него относительные!!!
[11:11:39] <valexey_> Вместо того чтобы просто посмотреть что генерирует компилятор, он эксперименты проводит с секундомером
[11:12:25] <genieprox> ну, один и тот же маш. код на разных процессорах разное время может выполняться... суперскаляры всякие, промахи кеша и тд...
[11:13:25] <valexey_> Ага.
[11:13:51] <valexey_> Он помнится тут быстродействие памяти что ли мерял
[11:13:55] <valexey_> Ога
[11:14:19] <valexey_> На массиве размером в 100 килобайт :-)
[11:15:11] <genieprox> если всякие мемтесты запустить, то там лесенка -- сначала скорость ооочень высокая, потом на порядок ниже, потом ещё почти на порядок ниже...
[11:15:25] <valexey_> То что размер кеша процессора много больше этой сотни, его не смущало
[11:16:30] <valexey_> Ну да, кеш первого и второго уровня
[11:16:44] <valexey_> А иногда и третьего уровня
[11:17:14] <valexey_> Вот в микроконтроллере все просто - никаких кешей
[11:17:29] <valexey_> И общение с памятью только через шину
[11:17:52] <valexey_> Доступ к ячейке памяти - восемь тактов
[11:21:17] <valexey_> Да, а хаскелл к сожалению применим лишь там где нет зависимости от времени, а таких задач мало. Очень мало. А жаль,
[12:30:43] <kemiisto> спека Скалы
[12:30:47] <kemiisto> 191 страница
[12:30:51] <kemiisto> :-D
[12:31:02] <valexey> с либами
[12:31:04] <kemiisto> Нет пути!
[12:31:06] <valexey> ?
[12:31:06] <тихий бот> тварь я дрожащая, или тот, кому надо?
[12:31:14] <kemiisto> не уверен
[12:31:31] <valexey> дык оглавление глянь
[12:31:54] <kemiisto> да
[12:31:55] <Жаба> kemiisto, да нед...
[12:32:01] <kemiisto> без либ 136
[12:32:13] <kemiisto> 136
[12:33:04] <kemiisto> а должно быть сколько? прально! 16!!!
[12:36:39] <белый шум> клеветы блять
[12:55:35] <subj_rs> клевета клевет )
[13:00:19] <genieprox> > Да, а хаскелл к сожалению применим лишь там где нет зависимости от времени, а таких задач мало. Очень мало. А жаль,

на десктопе почти все задачи такие.
да и серверы далеко нечасто требуют реалтайм
[13:37:27] <valexey> geniepro: это в каком это месте они такие? ну вот берем две произвольные задачи, ну, скажем игры и видеотелефончег — и там и там реалтайм :-)
[13:38:16] <valexey> ну или тот же браузер. оно конечно не реалтайм, но тут засада другая — нужна скорость работы и малая жоркость памяти.
[13:40:02] <genieprox> у мя опера спокойно гиг памяти хавает. никакого хаскела там и в помине нет
[13:41:11] <genieprox> видеотелефон -- слишком редкая задача. вот игры да, им реалтаймность нужна. но и то не всем...
[13:42:01] <valexey> именно. а если написать браузер на жабе или хаскеле то будет 8 гигов вместо одного
[13:49:46] <genieprox> не факт )))
[13:54:50] <valexey> Ну, либо код на хаскеле будет довольно уродским
[13:56:51] <valexey> и да. оный код не будет соответствовать стандарту хаскеля :-)
[13:57:09] <valexey> потому что как минимум придется анбоксед типами пользоваться
[13:57:19] <genieprox> на сайте IBM уже не тока сххему пропагандируют, но и эрланг! http://www.ibm.com/developerworks/opensource/library/os-erlang1/index.html
[13:58:23] <valexey> у IBM на сайте статьи откровенно говенного качества
[14:59:20] <genieprox> http://nstarikov.ru/blog/9574#more-9574
[15:03:19] <valexey> стариков не знает физику.
[15:03:56] <valexey> поэтому его доводы смехотворны
[16:46:40] <subj_rs> пипл, где бы раздобыть карты в таком же расширении как на terraserver.com ?
[16:46:54] <subj_rs> а то оттуда заипешся выдерать да и буквы левые на карте
[17:57:13] <valexey> нониновский датчик оксиметрии - кавайная няка! я из него столько данных вытащил по блютусу.. фантастика! вплоть до пульсовой волны!
[18:28:42] <valexey> http://habrahabr.ru/blogs/copyright/119181/
[19:30:14] <valexey> geniepro: а в хаскеле есть чо для работы с ком-портом?
[19:31:36] <valexey> ага. вроде чо-то есть
[19:33:07] <geniepro> http://www.livejournal.ru/tech/themes/id/1842
[19:33:19] <geniepro> с ком-портом? на хаскелле?????
[19:34:01] <valexey> да. а что?
[19:34:12] <valexey> http://hackage.haskell.org/package/serialport
[19:34:18] <valexey> /me восстановил форум
[19:34:26] <valexey> тех саппорт работает таки довольно оперативно там
[19:34:32] <geniepro> а чо с форумом было? о_О
[19:34:33] <valexey> реакция в течение 5 минут
[19:34:45] <valexey> аккаунт суспендили почему-то
[19:34:48] <valexey> наверно проверяли жив ли я :-)
[19:35:34] <geniepro> давно я не работал с com-портом. щас даже и не придумаю, зачем он мне бы понадобился )))
[19:36:18] <valexey> ты отстал от жизни :-) по блютусу же :-)
[19:36:24] <valexey> виртуальный ком
[19:36:37] <valexey> я с наниновским датчиком-оксиметром так работаю. очень удобно
[19:37:16] <valexey> как иначе с дивайсов данные получать? :-)
[19:37:45] <geniepro> ясно. ещё у нас один школьный прибор-осцилограф по юсб, имитирующий com-порт как-то тоже подключали. скорость до мегабита в сек
[19:38:02] <valexey> угу, ком умеет такие режимы
[19:38:14] <valexey> но тут классика — 9600
[19:38:18] <valexey> больше и не надо
[19:38:45] <valexey> дас. хотя у хаскеля конечно с гуем все печально, наверно лучше яву взять
[19:38:58] <valexey> если она с комом умеет работать конечно же
[19:39:40] <geniepro> а чем gtk2hs+glade не устраивает? о_О
[19:39:41] <valexey> subjrs: Ада с ком-портом уже научилась работать?
[19:39:55] <valexey> geniepro: ты представляешь сколько это будет секса под макосью?
[19:40:04] <subjrs> чо там учить то?
[19:40:15] <valexey> дык искаропки не умело же :-)
[19:40:26] <valexey> помню какие-то пакеты по помойкам искал для этого
[19:40:36] <subjrs> дык и не должно )
[19:40:38] <geniepro> "Тогда же, в 1953 г., астрономы обнаружили крупные космические объекты, двигавшиеся по направлению к Земле. Сигма перехватил радиопереговоры инопланетян. Несколько объектов вышли на очень высокую орбиту вокруг экватора. Но было непонятно, чего им надо. В это же время группа уже знакомых человекообразных инопланетян вошла в контакт с правительством США. Они предупреждали об опасности, связанной с новыми пришельцами, предлагали людям свою помощь. Также они утверждали, что земляне идут по пути саморазрушения. Главным условием стало требование об уничтожении ядерного оружия, что вызвало большие подозрения у американцев. Помощь инопланетян была отвергнута."
[19:41:14] <valexey> subjrs: я не про стандарт языка, я про GNAT :-) уж это то он мог бы уметь скаропки
[19:41:15] <subjrs> valexey: http://ada-ru.org/src_pc_ports_io.html
вот тут чота есть
[19:41:19] <geniepro> под макосью -- гуи на обж-си, логика на хаскелле. это труЪ
[19:41:39] <valexey> geniepro: проще умереть, в смысле написать все на жабе и не мучаться :-)
[19:41:57] <geniepro> а чо не на обж-си?
[19:42:12] <geniepro> жаба ацтой же ))
[19:42:23] <valexey> потому что это же должно работать и подвендой и подленухой :-)
[19:42:55] <geniepro> тада при чём здесь макось? )))
[19:42:57] <valexey> желательно без изменений и перекомпиляций. это мелкая утиль.
[19:42:59] <subjrs> valexey: чтобы получить доступ к портам ввода/вывода - там ж телодвижения еще нужны
[19:43:03] <geniepro> gtk же ))
[19:43:06] <valexey> при том что умну рабочее место на макоси
[19:43:10] <valexey> :-)
[19:43:11] <тихий бот> valexey, ;-)
[19:43:31] <geniepro> надо макось грохнуть к чертям и поставить хрюшку на её законное место
[19:43:35] <valexey> subjrs: та ладно, файл он и есть файл.
[19:43:50] <valexey> geniepro: это на макбук шоле? тут венды небыло и не будет! :-)
[19:43:54] <subjrs> valexey: эээ, там ж не с файлом работаешь по сути
[19:44:13] <geniepro> там венда легко заработает! у нас тут ставят и радуются )))
[19:44:17] <valexey> subjrs: /dev/tty.portnum
[19:44:25] <subjrs> а, это другое уже
[19:44:28] <valexey> да и под вендой как писать под йфон?
[19:44:39] <subjrs> это ты с драйвером общаешся а не с ком-портом
[19:45:15] <geniepro> да, и кто мешает постаавить параллель десктоп или как там оно называется?
[19:45:52] <valexey> венда нинужна. лишняя сущность. что она упростит в моем случае?
[19:47:15] <geniepro> жаба нинужна )))
[19:47:25] <valexey> и-и?
[19:47:38] <valexey> ты намекаешь что на gtk под вендой писать легко и приятно? :-)
[19:47:40] <geniepro> венда рулез!
[19:47:57] <subjrs> говорите жава а не жаба
[19:47:58] <geniepro> вапще надо на винформсе писать. на шарпе )))
[19:48:20] <valexey> нинада. так говорить. мну сейчас стошнит.
[19:49:22] <geniepro> это хорошо. для профилактики. кишечника. )))
[19:49:24] <subjrs> жава труЪ ж!
[19:49:40] <geniepro> не люблю жаву за тормознутость.
[19:50:44] <valexey> жаба не тормозит же :-)
[19:50:53] <subjrs> пинг
[19:50:53] <Жаба> subjrs, поньг
[19:51:14] <subjrs> жаба комаров жрет
[19:51:20] <valexey> ога
[19:51:59] <geniepro> а я не про жабу. а про жаву ))
[19:52:45] <valexey> дойдут руки, надо будет тестик написать :-) там станет очевидно что jsva не тормозит :-)
[19:52:50] <valexey> на message bus
[19:54:11] <geniepro> зачем какой-то там месседж бас? простой гуи на жаве тормозит. серьёзная программа на хаскелле работает заметно реактивнее, чем аналог на жаве!
[19:55:40] <valexey> а что, на хаскеле уже написали какую-то gui-либу? :-)
[19:55:50] <valexey> если чо — ghc это сишечка
[19:55:56] <valexey> *gtk
[19:56:04] <valexey> gtk2hs — всего лишь биндинг
[19:56:19] <valexey> то есть хаскель вообще отрисовкой не занимается
[19:56:28] <geniepro> это неважно.
[19:56:34] <valexey> важно
[19:56:49] <geniepro> на жаве гуи тоже небось на сях писан
[19:56:54] <valexey> если что — awt тоже абсолютно реактивный :-)
[19:56:56] <valexey> нет
[19:56:56] <Жаба> valexey, нет да!
[19:57:01] <valexey> целиком на джаве
[19:57:11] <geniepro> тормозит вся эта VM, интерпретация байткода и тд...
[19:57:24] <valexey> та нет там интерпретации байткода :-)
[19:57:35] <geniepro> как нет? всегда была же
[19:57:42] <geniepro> это в дотнете JIT
[19:57:44] <valexey> угу. 10 лет назад
[19:57:48] <valexey> с разморозкой!
[19:57:58] <valexey> в жабе jit уже давным давно
[19:58:03] <valexey> при желании это можно отключить
[19:58:29] <geniepro> сановский джит -- фикция! он заточен на тест быстрой сортировки и нифига реально не пашет!
[19:58:56] <valexey> толсто :-)
[19:59:00] <geniepro> а эксельсиоровский джит жутко дорогой!
[19:59:20] <valexey> эксельсиор вообще jit не умеет
[19:59:22] <valexey> там jet
[19:59:29] <valexey> почувствуй разницу :-)
[19:59:36] <geniepro> ну джит-джет какая разница? ))
[20:00:00] <valexey> большая :-)
[20:00:10] <geniepro> как я понял, джет делает примерно то же, что и тулза ngen из дотнета
[20:00:14] <valexey> одно дело когда в бинарь во время исполнения хреначится, другое дело когда в момент сборки
[20:00:52] <valexey> кстати, прошлой осенью был у нас на жабе видеотелефон. отличненько оно казало на полный экран картинку с 30 fps. без проблем вообще
[20:01:38] <geniepro> небось самый главный код на сях был написан )))
[20:01:56] <valexey> причем без оптимизаций в виде пулов, то каждую секунду там выделялось и удалялось порядка 300 мегабайт памяти
[20:02:03] <valexey> на сях там вообще ничего не было
[20:02:37] <valexey> вот такая вот прокачка данных шла
[20:02:40] <valexey> и ничего.
[20:02:58] <geniepro> тады надо на CAL делать прогу. почти хаскел
[20:03:15] <valexey> думал что нужно будет пул сделать фреймов, однако не пришлось.
[20:03:40] <valexey> кал этот позабыт позаброшен…
[20:12:59] <valexey> о, для жабы есть RxTx <http://rxtx.qbang.org/wiki/index.php/Main_Page>
[20:14:16] <valexey> "The latest version of RxTx is known to work on 100+ platform, including Linux, Windows, Mac OS, Solaris and other operating systems."
[22:59:36] <kemiisto> щито это?
[23:02:08] <geniepro> посмотрел "Город бога". ничо, ничо так. зачётный фильм!
[23:02:40] <kemiisto> ХОККЕЙ СМОТРИТЕ!!!
[23:02:51] <geniepro> хоккей сосёт!
[23:03:14] <kemiisto> :-@
[23:03:28] <kemiisto> УПАДИ В МОГИЛУ!!!
[23:03:44] <geniepro> я щас упаду в кровать -- спать пора уже )
[23:09:37] <valexey> а я домой пошел.
[23:09:39] <valexey> с работы :-)
[23:20:01] <geniepro> > [00:09:41] <valexey> а я домой пошел.
> [00:09:41] <valexey> с работы :-)
> [00:11:13] *** valexey (valexey@jabber.org/MacBook-Pro-Valexey) выходит из конференции

да уж. в полночь с работы возвращаться -- неслабо так )))