C# Изменение AssemblyVersion на более раннюю версию влияет на производительность

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

В настоящее время я работаю на 64-битной машине с процессором AMD, и если я переключаюсь на машину Intel (также 64-битную), эта проблема не возникает. Проект, над которым я работаю, зависит от 2 или 3 Microsoft dll и 1 dll, созданных кем-то, кто работал над этим проектом в прошлом, с которым я не могу связаться (встроенный в x86).

В VisualStudio 2013 я анализировал производительность, когда номер версии сборки увеличивался, уменьшался и оставался неизменным. Из того, что я видел, выглядело, как будто приложение в среднем использует меньше потоков на более медленной версии и имеет больше коллизий.

Я буду честен и скажу, что подбираю проект, над которым работал кто-то в прошлом, и я определенно любитель C#. Из-за этого я провел прошлую неделю или около того, пытаясь выяснить, для чего именно используются AssemblyVersion и AssemblyFileVersion, как AssemblyInfo.cs создается с проектом и как dll создаются с проектом. Хотя я все еще немного запутан в фактах. Вот несколько мест, которые я посмотрел в своем исследовании о них:

DLL ад

Различия между сборочной версией сборочной версии и сборочной информационной версией

Взаимодействие процессов

Поперечная сборка приводит к снижению производительности

Я также запустил инструмент Visual Studio Performance and Diagnostics, чтобы попытаться графически изобразить нагрузку процессора и увидеть, сколько раз функция вызывалась в течение срока службы приложения. Все 3 параметра (увеличение, уменьшение, сохранение того же) имели функцию, которая запускает приложение (таймер, который срабатывает каждые 50 мс), запускаются больше, если это была более медленная версия, и меньше, если это была более быстрая версия.

Я попытался перестроить dll, используемую с нашим проектом, в x64 и построить проект как Any CPU, но это тоже не сработало. После этого я ударился о кирпичную стену и совершенно не знаю, где искать дополнительную помощь / информацию о моей проблеме, с которой я столкнулся.

Мне очень жаль, если это трудно ответить из того, что я дал, или если что-то неясно. Если кому-то понадобится более четкое объяснение, я постараюсь ответить и сделать это. После 4 восточных, хотя я не смогу отвечать на вопросы до завтрашнего утра.

Спасибо всем

edit* Измерения производительности были сделаны с классом секундомера (плохая идея, я знаю). Производительность заметно отличается в том, как быстро графический интерфейс обновит результаты на странице. (в графическом интерфейсе может отображаться около 3-10 сообщений в секунду)

0 ответов

Другие вопросы по тегам