2012-06-04 2 views
1

Я хотел бы провести некоторое исследование, но я не смог найти никакой информации об этой теме.Сравнение Lua с Mono

Единственная информация, которую я нашел ->http://benchmarksgame.alioth.debian.org/u32/compare.php?lang=csharp&lang2=lua

И я не знаю, как я могу интерпретировать эту диаграмму. Если я прав, он в основном говорит, что Lua в 10 раз быстрее, чем Mono. Но использование памяти Mono ~ в 8 раз лучше, чем Lua.

Что это говорит о производительности?

Сравнение Lua с Mono ->Преимущества/недостатки

Edit: [Gamedevelopment] CryEngine 3 использует C++/Lua атм. Но некоторые ребята выпускают моно-порт для этого движка. Я очень хорошо знаком с Моно. Но теперь я хотел сделать некоторые исследования на Lua, чтобы узнать, стоит ли изучать этот язык или я должен придерживаться Mono.

+0

Возможный дубликат [Вложение: mono vs lua] (http://stackoverflow.com/questions/564480/embedding-mono-vs-lua) –

+0

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

+2

Для меня эти диаграммы выглядят так, как будто все наоборот: C# быстрее, а Lua потребляет меньше памяти. – Botz3000

ответ

5

Вы сравниваете apples to oranges. C# - статически типизированный язык, скомпилированный в CIL, который является языком байт-кода, запускает (или обычно JITted) виртуальной машиной и используется для разработки веб-приложений и автономных приложений. Lua - динамически типизированный язык сценариев, обычно используемый интерпретатором, часто встроенным в расширяемый язык сценариев в более крупное приложение.

Кроме того, ваша интерпретация эталона неверна. Гистограмма показывает, что программа Mono занимает примерно 1/10 времени для запуска по сравнению с эквивалентной программой Lua.

Тем не менее, этот вид микрообъектива в значительной степени бесполезен. Не верьте мне на слово; читать what the Shootout itself has to say about it. Вы должны прочитать все это, но я вытащу некоторые сочные цитаты:

«Производительность в тесте, даже если это происходит из реальной программы, не может помочь предсказать эффективность подобных программ которые имеют разные горячие точки ».

«Может показаться парадоксальным использование интерпретируемого языка в среде с высокой пропускной способностью, но мы обнаружили, что время процессора редко является ограничивающим фактором, выразительность языка означает, что большинство программ являются небольшими и проводят большую часть их время в I/O и собственный код времени выполнения. "

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

Короче говоря: выберите ваш язык, основанный на действительно ли это хорошо на то, что вы хотите сделать с ним, позволяет ли вы выразить свое намерение ясно, позволяет ли вам писать чистый, maintanable код, а не на основе на некоторых в значительной степени бессмысленных номерах.

+0

Я просто задал этот вопрос, потому что у меня есть возможность использовать Lua или Mono для CryEngine 3 [GameDevelopment]. Я знаком с Моно, я просто хотел найти некоторые преимущества Lua. –

+2

О, почему ты не сказал это в первую очередь? http://stackoverflow.com/questions/564665/advantages-of-lua :) – Thomas

+0

>> в значительной степени бесполезно ... Вы должны прочитать все это. << Да, Майк должен прочитать все это и посмотреть, что это не говорят, что это в значительной степени бесполезно :) – igouy

0

Это говорит: Яблоки более зеленые, чем бананы.

Вы не можете просто сказать что-то вроде «Lua потребляет меньше памяти, чем C#, но занимает около 50% больше циклов процессора». Вы должны сравнить их в отношении вашего контекста, например. что вы хотите построить.

Если вы хотите рассчитать 5 * 5, ладно, Lua может быть быстрее (с точки зрения реализации). Но если вы хотите создать ERP-приложение со многими клиентами, я бы не рекомендовал Lua.

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

+0

Отсутствует язык LUA. Есть только Луа. Это собственное имя, а не аббревиатура. –

+0

>> 5 * 5, ладно, Lua может быть быстрее << Не похоже, что вы посмотрели, где указал Майк. – igouy

Смежные вопросы