высокая производительность - PullRequest
1 голос
/ 10 февраля 2012

Я впервые задаю вопрос на этом форуме. Я публикую общий вопрос. Мне не нужно разрабатывать приложение для конкретной цели. После долгих поисков я все еще не нашел ни языка, ни времени выполнения, ни скриптового движка, ни виртуальной машины, которые бы соответствовали этим 5 требованиям:

  1. выделение памяти переменных / значений или объектов, очищаемых во время выполнения (например, C ++, использующий ключевое слово delete или free в C)
  2. язык (и, следовательно, программа) представляет собой скрипт или псевдо-скомпилированный байт-код, который должен быть переносимым на основной операционная система (windows, linux, * bsd, solaris) и платформа (32 / 64bit)
  3. родное использование многоядерных (двигатель / время работы)
  4. нет ограничений на использование кучи
  5. библиотека для сети

Язык программирования для создания приложений, работающих на этом движке, ориентирован на агностик (парадигма не важна). Я надеюсь, что этот пост не вызовет священной войны, но я бы хотел сосредоточиться на поведении движка во время выполнения программы.

Извините за мой плохой английский.

Люк

1 Ответ

0 голосов
/ 13 февраля 2012

Я думаю, что Erlang может соответствовать вашему требованию:

  1. Большинство данных либо распределяются в локальных областях и поэтому сразу удаляются после использования, либо содержатся в постоянном хранилище на основе библиотеки, например ETS, DETS или Mnesia Хотя существует сборщик мусора, но парадигма языка делает его не столь важным.
  2. компилятор Erlang компилирует исходный код в байт-код виртуальной машины BEAM, который, в отличие от Java, основан на регистрах и, следовательно, намного быстрее. ВМ доступна для:
    • Solaris (включая 64-разрядные)
    • BSD
    • Linux
    • OSX
    • tru64
    • Windows NT / 2000/2003 / XP / Vista / 7
    • VxWorks
  3. Erlang был разработан для распределенных систем, параллелизма и надежности с первого дня
  4. Куча Эрланга растет с ростом вашей потребности в ней, изначально она ограничивается и расширяется автоматически (есть множество настроек, которые можно использовать для настройки этого для каждой виртуальной машины)
  5. Erlang происходит из сети и предоставляет тонны библиотек от IP до протоколов более высокого уровня
...