Как ironpython скорость выдерживает сравнение с другими языками .NET?

В целом это - очень тонкая проблема и не тривиальное безотносительно. Я поощряю Вас читать mysqlperformanceblog.com и MySQL High Performance. Я действительно думаю, что нет никакого общего ответа для этого.

я работаю над проектом, который имеет базу данных MySQL почти с 1 ТБ данных. Самым важным фактором масштабируемости является RAM. Если индексы Ваших таблиц вписываются в память, и Ваши запросы высоко оптимизированы, можно служить разумной сумме запросов со средней машиной.

количество записей действительно имеет значение, в зависимости от того, как Ваши таблицы похожи. Вот в чем разница для имения большого количества varchar полей или только нескольких ints или longs.

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

существует много к этому, выходит и как в большом количестве случаев, дьявол находится в деталях.

10
задан Gordon Gustafson 3 December 2009 в 00:06
поделиться

3 ответа

Вот две интересные ссылки со сравнениями между IronPython, CPython и C # (среди прочего):

  • CPython vs C # (Mono) тесты , основанные на нескольких программах подробно на сайте.
  • Тесты CPython vs IronPython , основанные на PyStone и PyBench, для версий 2.6.

Очевидно, это соответствует тому, что сказал вам ваш профессор. Но, как вы знаете, это во многом зависит от того, что вы используете.

Разница в основном связана с динамической природой объектов, используемых в Python, тогда как C # строго типизирован. Итак, IronPython использует еще один уровень (DLR - Dynamic Language Runtime) поверх того, из чего запускается C # (CLR - Common Language Runtime), чтобы устранить эту разницу.

Я обычно не люблю цитировать статьи из Википедии, но это - хорошая отправная точка: http: //en.wikipedia.org/wiki/Dynamic_Language_Runtime

Теперь, чтобы вернуться к вашему проекту, производительность, вероятно, будет больше зависеть от ваших алгоритмов / эвристики - например, от того, как вы запрашиваете базу данных - чем от языка. Если вы знакомы с веб-фреймворком и довольны им, рекомендуется придерживаться той же среды, а не получать несколько возможных процентов от того, что вам придется сначала приручить. Разумеется, все было бы иначе, если бы приложение загружало процессор.

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

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

9
ответ дан 4 December 2019 в 01:31
поделиться

Вы можете включить трассировку .net, которая выводит информацию о времени в нижней части страницы. Создайте приложение на C # /. Net и приложение на Python и посмотрите на разницу во времени. Это даст вам окончательный ответ.

Честно говоря, я думаю, что вам лучше просто использовать C #, он «быстрее» разрабатываться, поскольку среда VS создана для вас, и она будет работать быстрее, поскольку она не должны использовать среду выполнения динамического языка.

1
ответ дан 4 December 2019 в 01:31
поделиться

IronPython будет значительно медленнее, чем C#. Можно представить себе сравнение как очень грубое между CPython и C, но с несколько меньшим разрывом.

0
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: