Предлагает ли VB.NET какое-либо улучшение производительности по сравнению с VB6 для процессов, связанных с процессором? - PullRequest
2 голосов
/ 25 января 2012

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

Модель выполняет много одиночных операций.-точная арифметика (схема конечных разностей по большой сетке) с небольшими пакетами доступа к базе данных каждые пять секунд или около того (недостаточно, чтобы быть важным).Участвуют только базовые арифметические функции с периодическим использованием оператора ^ 4.

Кто-нибудь думает, что перенос на VB.NET может улучшить ситуацию (или нет)?Кто-нибудь знает какие-либо надежные статьи или документы, которые я могу проверить, чтобы помочь с этим решением?

Ответы [ 5 ]

5 голосов
/ 25 января 2012

Мое мнение таково, что VB.Net не улучшит производительность далеко.Улучшение дается вашей способностью создавать оптимизированный алгоритм.

2 голосов
/ 25 января 2012

Вероятно, лучшее повышение производительности, которое вы можете получить, это устранение доступа к БД (даже если это не выглядит важным, как правило, узким местом является ввод-вывод, а не сам язык). Если возможно, получите данные заранее и сохраните их в конце, вместо того, чтобы получать доступ каждые 5 секунд.

Также, как указывалось другими, измените алгоритм, если это возможно, поскольку перенос кода на .NET, вероятно, принесет вам лишь небольшую производительность преимущества.

Но если вы измените его на .NET 4.0, возможно, вы сможете использовать параллельные расширения и по-настоящему получить импульс, используя несколько ядер. http://msdn.microsoft.com/en-us/library/dd460693.aspx, но это также означает изменение алгоритма

Надеюсь, это поможет. ; -)

1 голос
/ 22 декабря 2014

Тот же алгоритм будет работать быстрее в VB6, потому что он составлен на родном языке. Если программа имеет обширное распределение памяти, она может работать быстрее в .NET при работе в 64-битной среде.

1 голос
/ 26 января 2012

Чтобы дать вам правильный ответ, мы должны проверить ваш код ...

Но, безусловно, теоретически VB.NET должен быть более производительным:

  1. возможность компиляции на 64битовые машины (без особых усилий)
  2. VB6 интерпретирован, VB.NET почти скомпилирован
  3. Вы можете использовать потоки (в зависимости от вашего алгоритма) и другие «трюки», поэтому вы можете использоватьбольше процессоров для параллельных вычислений

Лучше всего попробовать: перенести наиболее ресурсоемкую часть вашего приложения на VB.NET и сравнить.

1 голос
/ 25 января 2012

Я думаю, что улучшения в управлении памятью улучшают производительность в VB.NET

...