The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Компания Facebook открыла код высокопроизводительного PHP тр..., opennews (?), 02-Фев-10, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


15. "Компания Facebook открыла код высокопроизводительного PHP тр..."  +1 +/
Сообщение от evgeny_t (ok), 03-Фев-10, 00:46 
пц )))
говорял я им использовать java )))
Ответить | Правка | Наверх | Cообщить модератору

17. "хочу Jav'у в натив код compiler"  –1 +/
Сообщение от Mna (??), 03-Фев-10, 01:21 
>пц )))
>говорял я им использовать java )))

Да-да-да! я обеими руками за создание High-Performance Java-to-C++ compiler, и open-source-ного! вот это было бы дело.

А щас... ну, впрочем, может с этого HighPerformance-ПеХоПе удастся создать Python-to-C++ compiler, настоящий, а не костыляку в виде Shed Skin

Ответить | Правка | Наверх | Cообщить модератору

19. "хочу Jav'у в натив код compiler"  –1 +/
Сообщение от Volodymyr Lisivkaemail (?), 03-Фев-10, 01:59 
> Да-да-да! я обеими руками за создание High-Performance Java-to-C++ compiler, и open-source-ного! вот это было бы дело.

А что с gcc (gcj - GNU Compiler for Java) или VMKit? Чем не подходят?

Ответить | Правка | Наверх | Cообщить модератору

65. "хочу Jav'у в натив код compiler"  +/
Сообщение от Mna (??), 04-Фев-10, 19:01 
gcj - на моих мелких тестах был втрое медленнее, чем оригинальная Sun-овская Java, даже c ключом -client, не то что "java -server". Я так и не понял почему, заметил лишь, что time показывал втрое большее число pagefault-ов - это-то один огромный экзешник, у которого все по-идее внутри!
Если бы GCJ хотя бы на 50% уступал java -server-у можно было бы заморачиваться, а так...
Кстати, у gcj вышла проблема с подгрузкой второго JAR-а, коим оказался junit, уж его-то можно было бы скомпилить без проблем.

про VMKit не знал, - спасибо, гляну. при поиске по проектам LLVM не заметил - искал пакет полного цикла с компилятором - как Excelsior, скажем.

Ответить | Правка | Наверх | Cообщить модератору

72. "хочу Jav'у в натив код compiler"  +/
Сообщение от Карбофос (ok), 07-Фев-10, 15:36 
pagefault обычно возникают при пересечении границ памяти. чем корявее работа с данными (или сам код), тем больше количество pagefault. а у этого огромного екзешника и данные тоже внутри? то есть вы полагаете, что область данных и стека тоже входит в ваш екзешник? o_O
Ответить | Правка | Наверх | Cообщить модератору

73. "хочу Jav'у в натив код compiler"  +/
Сообщение от Mna (??), 08-Фев-10, 03:40 
Тестовая программка оформлена как берущая вход со stdin, и выдающая в stdout.
Кроме этого никаких особенных данных не обрабатывалось, всё остальное - константы внутри class-файла, или соответственно, экзешника, в сегменте данных, если так удобнее Вам представить. Экзешник, кстати, должен был бы весь загрузиться в память функцией mmap (или CreateFileMapping/MapViewOfFile в случае Windows)- свободной памяти на машине для этого было предостаточно.

Вопрос о вхождении стека в экзешник, по-моему, отношения к делу не имеет.

То есть, да, в основном внутри.

Ответить | Правка | Наверх | Cообщить модератору

74. "хочу Jav'у в натив код compiler"  +/
Сообщение от Карбофос (ok), 08-Фев-10, 08:49 
чисто технически, если это большой екзешник, то и делает он много. если работа с stdin и прочим проходит без буфера обмена и других вещей, то работу с памятью предугадать сложнее. это будет зависеть напрямую от организации внутренних областей памяти по умолчанию.
в яве еще нужно приплюсовать время на создание объектов, даже для работы со строками (стандартной) нужно создание объектов. даже, если происходит работа с текстовыми константами. вполне вероятно, что у сановской явы включены по умолчанию ключи оптимизации. в конечном итоге испробуйте оптимизацию -O2 или -O3.

ну и здесь можно посмотреть как раз по инициализации статичных классов (опции):
http://gcc.gnu.org/onlinedocs/gcj/Code-Generation.html

где-то должна быть разница. кстати, ява все-таки очень интенсивно работает со стеком, но, скорее всего, дело не в этом.

Ответить | Правка | Наверх | Cообщить модератору

20. "хочу Jav'у в натив код compiler"  –1 +/
Сообщение от evgeny_t (ok), 03-Фев-10, 02:05 
уже есть )
http://www.excelsior-usa.com/jet.html

только он не нужен )

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

66. "хочу Jav'у в натив код compiler"  +/
Сообщение от Mna (??), 04-Фев-10, 19:08 
>уже есть ) >http://www.excelsior-usa.com/jet.html
>только он не нужен )

1. Есть: коммерческий и с закрытыми исходниками
Были б были открытые я бы кое-что подправил, есть одна хорошая идея.

2. Почему не нужен, кому не нужен, по какой причине?

Java - самый распространённый ЯП по индексу TIOBE, 20% программистов
Вдвое обгоняя C. (10%). Но это в теории.

А на практике на нем есть написанных куча серьезных опенсорсных программ.
Вот тем, кто их использует и не хочет изобретать велосипедов - нужен.

Ответить | Правка | Наверх | Cообщить модератору

30. "хочу Jav'у в натив код compiler"  –1 +/
Сообщение от Чорная дипрессия 666email (?), 03-Фев-10, 10:15 
> А щас... ну, впрочем, может с этого HighPerformance-ПеХоПе удастся создать Python-to-C++ compiler, настоящий, а не костыляку в виде Shed Skin

Есть Pyrex и Cython, правда не в C++, а в обычный си.
Опять же, никому не нужно перекомпилировать весь проект из питона в си. Достаточно только самые много раз выполняемые участки кода типа циклов.

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

67. "хочу Jav'у в натив код compiler"  +/
Сообщение от Mna (??), 04-Фев-10, 20:31 
>>может с этого  удастся создать Python-to-C++ compiler, настоящий, а не костыляку в виде Shed Skin
>
>Есть Pyrex и Cython, правда не в C++, а в обычный си.

Насколько я помню, в них обоих, в скомпилированной программе, все равно есть питонтво, проявляется в том, что специально не указанные объекты там - все равно питоньи. И куча программного кода конвертирования объектов Python->C и C->Python. Вносящего ненужные задержки.

Идея Shed Skin-а как раз-таки чертовски хорошая (а реализация подкачала, сильно):
Получить автоматически zero-overhead код, все выводы типов сделает транслятор. Это же можно сделать автоматически, в конце концов!!

то есть, базовая идея, что в HiPHoP, что в Shed Skin та же самая (может еще где, не знаю)
: а) Писать код на высокопродуктивном для прототипирования языке, динамическом, скриптовом, etc.
  б) В продакшн компилировать исходники, отдельным инструментом, в нативный высокооптимизированный код. желательно без eval-ов.

В итоге - создаем программу быстро. тестируем, и т.п. А в продакшн запускаем - тоже оптимальный код. но создается он не ручным конвертированием, а автоматически.

Тестироваине никто не отменял, но это уже детали.

>Опять же, никому не нужно перекомпилировать весь проект из питона в си.
>Достаточно только самые много раз выполняемые участки кода типа циклов.

В теории да. Но не во всех случаях: в моем случае, для того Питон-проекта, он останется в меньшинстве, потому и желательно чтоб и вовсе не было.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру