тесты языка веб-программирования? - PullRequest
2 голосов
/ 06 октября 2009

Я думаю, что по мере того, как все больше и больше программистов переходят в Интернет с подобными и разнообразными инструментами и методами, кто-нибудь придумал хороший набор тестов для языка программирования?

Я думаю, что серверные языки, такие как Java, PHP, ASP.net и C #, являются большими. Хотя это может быть что-то вроде C или Perl, я не хочу идти туда, потому что это не мейнстрим или даже быстро.

Когда я покупаю новый процессор, я могу измерять числа с плавающей запятой, целые и многозадачные. Я могу отмерить такие вещи, как время рендеринга.

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

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

Кто-нибудь еще занимается этим, или я должен заниматься своим делом?

РЕДАКТИРОВАТЬ: да, я знаю, что тесты являются субъективными, особенно в отношении веб-страниц. Я не говорил, что это будет легко или даже необходимо сейчас. Ясно, что сравнение моей видеокарты на Crysis и Far Cry субъективно, но это полезный тест в реальном мире. Это то, к чему я стремлюсь, и для основных языков. Можем ли мы увидеть всплеск в C, если производительность станет центром внимания в будущем?

Ответы [ 5 ]

2 голосов
/ 06 октября 2009

Существует несколько тестов , сравнивающих множество языков на стороне сервера.

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

Вот результаты работы моего Powerbook G4 на 867 МГц. Чем короче, тем лучше. Обратите внимание, что следующие тесты не являются научными, и были просто сделаны, чтобы удовлетворить мое любопытство. Ваш пробег может отличаться.

Не стесняйтесь присылать мне порты на любые другие языки. Программа должна распечатать время в секундах, которое прошло внизу, в виде «Elapsed% 0.2f». Если можете, включите инструкции по сборке на MacOS X.

Language                Time    Relative Speed
C gcc-4.0.1             0.05 seconds     1.00 x
ocaml compiled 3.09.2   0.05 seconds     1.00 x
SBCL 1.0.2              0.13 seconds     2.55 x
Java 1.4.2              0.40 seconds     8.00 x
Io 20070410 Vector      1.40 seconds     28.09 x
Lua 5.1                 1.50 seconds     30.00 x
ocaml bytecode 3.09.2   3.76 seconds     75.15 x
Python 2.5.1            9.99 seconds     199.80 x
Ghostscript 8.51        11.66 seconds     233.12 x
Perl 5.8.6 Optimized    12.37 seconds     247.34 x
TCL 8.4 Optimized       16.00 seconds     320.00 x
Perl 5.8.6              21.75 seconds     435.00 x
PHP 5.1.4               23.12 seconds     462.40 x
Javascript SpiderMonkey v1.6 31.06 seconds     621.27 x
Ruby 1.8.4              34.31 seconds     686.18 x
Emacs Lisp              47.25 seconds     945.00 x
Applescript             71.75 seconds     1435.00 x
Io 20070410             85.26 seconds     1705.13 x
1 голос
/ 24 февраля 2012

Вы говорите о базовых технологиях, которые являются слишком общими для спецификации. Интернет - это больше сеть и телекоммуникации, чем языки программирования. Передача сигнала, модуляция и прием влияют на качество обслуживания. Подумайте о многопользовательских играх или деловом портале бэк-офиса. Основными соображениями относительно производительности приложения могут быть погода, шум сигнала, расстояние, количество людей, использующих ресурс, и так далее. Характеристики сервера и пользовательские периферийные устройства будут играть важную роль в удобстве использования вашей программы. И наконец, будет ли ваша программа работать правильно на разных платформах. Поэтому самая большая проблема для программистов - не язык, а ошибки. Нет глючных программ. Это не компилятор. Это код.

У меня был тот же вопрос. JavaScript или точечная сеть. Ответ зависит от того, что вы хотите сделать. Скорее всего, сценарий выглядит так, как он выглядит, простые данные или простые операции, потому что сценарий имеет простую языковую структуру. Сложные операции или более крупное хранилище данных получат лучшую производительность от более надежного и структурированного языка программирования, такого как C ++.

Существует также фактор денег, который имеет положительную корреляцию со сложностью представления в СМИ. Все! стоит денег, даже вашего времени. Это может быть неясным, но стоимость там. Общий (с открытым исходным кодом) не всегда лучше, потому что скрытые затраты возникают, когда вы хотите использовать чужие ресурсы. Зачастую у $$ компании $$ есть более эффективные инструменты для управления ресурсами, которыми они владеют, и инструментам может потребоваться определенный язык или технология. То есть у вас не всегда есть выбор языка. Это решение уже было принято при разработке ресурсов.

0 голосов
/ 14 октября 2009

кто-нибудь придумал хороший набор тестов для языка программирования?

Вероятно, нет, и кажется, что это все менее вероятно произойдет - см. "Ошибочные тесты" и особенно "Тесты - это черепок".

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

Что заставляет вас думать, что вы можете сказать, что они "сделаны одинаково на каждом языке"? Исходный код программы может выглядеть одинаково, но это не означает, что интерпретаторы языка делают то же самое, или компиляторы генерируют одинаковые инструкции процессора.

0 голосов
/ 06 октября 2009

Числа с плавающей запятой и т. Д. Из ЦП менее субъективны, чем веб-страница / веб-сервис и т. Д., Чтобы сделать честное сравнение между языками будет сложно, и часто проблема заключается в том, как он написан, а не в самом языке. Было бы трудно точно сравнить языки, хотя и не невозможно.

Самая простая аналогия для меня заключается в том, что механизмы оценки TPC для базы данных хорошо известны и обеспечивают показатели производительности на стороне базы данных, но когда среднестатистический разработчик даже взглянет на них? Если вы не работаете на экстремальном уровне, они не являются вашим руководящим фактором (и даже в этом случае БД включают в себя ярлыки оптимизатора для улучшения показателей TPC.)

TPC сделала из этого некоммерческий бизнес, но он получает значительный вклад от конкурирующих продуктов - если бы MS / Oracle / IBM вместе с поставщиками оборудования не покупали его, он бы не продвинулся слишком далеко.

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

0 голосов
/ 06 октября 2009

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

Помимо фактической скорости обработки чисел, качество языка очень субъективно, и есть те, кто считает, что производительность программирования важнее, чем скорость вычислений.

Кроме того, хотя многие языки имеют общие характеристики, у каждого языка есть определенные цели. Это все равно, что сравнивать яблоки с апельсинами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...