Flash зло, как не крутите
Интерпретируемые ЯВУ, применяемые для обработки больших объемов данных, - еще большее зло.
лет холи вор бегин
Это про что?
видимо про языки высокого уровня
- тему можно закрывать
Ban Potlatch!! постепенно трансформируется в Ban Flash!!!
Я просто не понял где у нас в обработке больших объемов данных применяются интерпретируемые ЯВУ.
Ну лично я бы и про potlatch что-нибудь сказал, если бы он хотя бы как-то работал.
Java - язык интерпретируемый. Откуда, собственно, тормознутость josm’а и происходит.
как же так???
А иначе с какой бы стати ему нужна была виртуальная машина?
Ни в коем разе, там JIT. В современных javascript и флеш движках, кстати, тоже.
интерпретируемый != тормознутость
Josm != Potlatch
- Potlatch (тормозит)
- Merkaartor (практически не тормозит)
- Josm (не тормозит)
Все зависит от кодера…
Вообще-то для переносимости между платформами.
Я бы расставил акценты несколько иначе. На мой взгляд, josm тормозит больше, чем poltach. Возможно, это из-за того, что обычно я работаю на Atom. Но именно на процессорах низкой производительности и проявляется тормознутость в наибольшей степени.
А от кодера - да, зависит. Причем в гораздо большей степени, чем от того, компилируемый язык или интерпретируемый. Но факт остается фактом: на процессорах типа Atom JOSM тормозит нещадно. Я, например, не могу с ним работать.
На С тоже пишут переносимый код. Но виртуальная машина для него не нужна.
В том то и дело, что текст java компилируется не в native код, а в байт-код, который процессор выполнять не способен. Может только интерпретировать.
Правда, уже после появления java были разработаны процессоры, способные выполнять байт-код, но x86 к ним не относится.
Для переносимости между платформами там байткод, а VM - чтобы его исполнять. Это можно делать прямой интерпретацией, либо предкомпилированием в нативный код, что она и делает. Это и есть JIT.
JOSM не так чтобы особо тормозной, но java жрет память, причем совершенно бесполезным образом - вот это самая гадость. Система лезет в своп - начинаются тормоза. Я не спец по java, но могу предположить что она в целом медленнее работает потому что, во-первых, у JIT не особо много времени на оптимизацию под целевую платформу, ибо нативный код надо скорее начать исполнять, во-вторых, gc, а лишний indirection, всякие счетчики ссылок, и собственно реальная трата циклов когда он работает, и в-третьих, тот факт, что добавляется дополнительная прослойка для вызова библиотечных функций, тех же X11 и GL. В общем то, что когда домиков очень много он действительно рисует их не очень быстро - скорее всего не шибко эффективная работа с GL, что от языка не зависит.
На С тоже пишут переносимый код. Но виртуальная машина для него не нужна.
В том то и дело, что текст java компилируется не в native код, а в байт-код, который процессор выполнять не способен. Может только интерпретировать.
А байт-код - в нативный. Но таки да - “преимущество” жавы в плане бинарной переносимости в FOSS мире скорее недостаток.
К слову, я лулзов ради за ночь написал на C парсер .osm - пока он в 6-8 раз быстрее expat и libxml2 (SAX обертка над ним в 1.5 раза медленее). Интересно было бы его сравнить с тем, что используется в osmosis. А вообще как раз большие-то объемы данных можно обрабатывать и интерпретируемыми языками, гораздо более высокие требования - у интерактивных приложений.
JOSM не так чтобы особо тормозной, но java жрет память, причем совершенно бесполезным образом - вот это самая гадость.
Кстати, может быть. На мой взгляд, 1 Гбайт памяти на 5 Мбайтную карту - вполне достаточно. Но JVM может считать иначе.
В общем то, что когда домиков очень много он действительно рисует их не очень быстро - скорее всего не шибко эффективная работа с GL, что от языка не зависит.
По моему опыту, чтобы GL начал тормозить, нужно скормить ему не менее 100000 объектов. Я сильно сомневаюсь, что “много домиков” дотягивают до таких цифр.