Что такое «производительность языка»? - PullRequest
2 голосов
/ 16 февраля 2010

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

Ответы [ 6 ]

3 голосов
/ 16 февраля 2010

Реальный ответ: это ничего не значит, или о чем думал автор этой презентации в то время.

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

2 голосов
/ 16 февраля 2010

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

Некоторые языки намного проще для написания эффективных реализаций, чем другие. Например, C всегда был «быстрым» языком, потому что он очень близок к металлу и для него легко написать эффективный компилятор. Поскольку производительность технически является свойством реализации, медленный язык может стать быстрым языком по мере улучшения реализации. Например, Java была интерпретирована в ее ранних версиях и считалась (справедливо в то время) «медленным» языком. С тех пор JIT-компиляторы и сборщики мусора стали настолько хорошими, что теперь Java по праву заслуживает место среди «быстрых» языков. Это иллюстрирует, почему такие сравнения языковой эффективности должны быть сделаны с недоверием.

1 голос
/ 16 февраля 2010

Насколько я знаю, это не термин с общепризнанным определением. По факту. «Языковая эффективность», вероятно, означает «некоторую метрику, по которой мой любимый язык имеет хорошие оценки». Более серьезно, презентация должна определять термины. Если этот термин не определен понятным образом, то в представлении отсутствует содержание.

1 голос
/ 16 февраля 2010

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

1 голос
/ 16 февраля 2010

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

Я хотел бы создать / найти серию программ, которые делают одно и то же и могут быть написаны очень близко к одному и тому же способом на любом языке. Возможно, уже существует пакет программного обеспечения (в частности, SPEC cpu2006), который делает именно это. Найдя эти программы, я запустил их и измерил производительность. Здесь все еще трудно сделать выводы, поскольку разные языки (и / или среды выполнения) делают разные вещи лучше и хуже, и очень трудно найти набор программ, которые «правильно» выполняют все части изучаемых языков.

0 голосов
/ 16 февраля 2010

Для правильной работы некоторых языков требуются большие среды выполнения, в основном это относится к интерпретируемым языкам, таким как Python или Ruby. Многие скомпилированные языки имеют меньшие накладные расходы, как Objective-C. Эти факторы влияют на производительность.

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