спасибо, очень интересно и очень круто!
Проблема ещё в том, что перерегистрация длл это только маленькая часть того, что делает утилитка… Нет смысла выносить маленький кусочек из неё в cmd…
библиотек около 300… Итого — в начале разрегистровать страуюю длл, потом зарегистрировать новую — получаем около 600 процессов надо запустить…
Выигрыш в скорости раза в 5… Т.е. в варианте с запуском процессов оно работало минут 7, причём весь комп аццко тормозил, в варианте с этим кодом работает минуты 1.5… Т.е. ощутимо быстрее и менее тормознуто…
Времени было потрачно около 20 минут на написание… Ну и минут 40 на изучение проблемы со всех сторон…
Оно того стоило, потому что на машинах переход с версии на версию может осуществляться раз 10 в день…
не было бы в разы быстрее. Быстрее как раз так. При таком подходе как в статье не нужно для каждой длл создавать 2 процесса. Как минимум на этом экономится время.
Про наглядность — не спорю, но была задача оптимальности и на .NET
программа ради которой это всё затеяно написана на vb6 :)
Так что манифесты это хорошо и так и надо делать, но в данном случае мне это никак не помогло бы :)
Похоже, что этот метод вызывается во время десереализации объекта, непосредественно перед заполнением всех полей объекта (восстановлением состояния объекта)…
1) вы же сами написали в пункте 5) что автоматически вызывается конструктор, который инициализирует все поля… Так что консруктор вызывается…
2) Это точно, но идея в том что static заменяется в IL коде явно на два других ключевых слова.
3) напишу в ответах
4) Точно, тоже напишу подробнее в ответах
6) Ну не всё, но многое… Выше часть написали
7) FCL == Framework Class Library — библиотека классов дот нет фреймворк
может быть уже слишком поздно что-то делать, когда появились проблемы… Как работает CLR действительно зубрить не надо, а основы — это такое размытое понятие :)
Вот, например, может быть такое что код работает и вроде всё хорошо, но стоит немного переделать его и он начинает работать в 40 раз быстрее… Я говорю, например, о понимании различий в работе CLR со значимыми и не значимыми типами…
как говорят сами разработчики — такова бы была электронная почта, если бы её придумывали только сейчас… посмотрим, получится ли у них обрести такую же популярность…
Проблема ещё в том, что перерегистрация длл это только маленькая часть того, что делает утилитка… Нет смысла выносить маленький кусочек из неё в cmd…
Выигрыш в скорости раза в 5… Т.е. в варианте с запуском процессов оно работало минут 7, причём весь комп аццко тормозил, в варианте с этим кодом работает минуты 1.5… Т.е. ощутимо быстрее и менее тормознуто…
Времени было потрачно около 20 минут на написание… Ну и минут 40 на изучение проблемы со всех сторон…
Оно того стоило, потому что на машинах переход с версии на версию может осуществляться раз 10 в день…
Про наглядность — не спорю, но была задача оптимальности и на .NET
Так что манифесты это хорошо и так и надо делать, но в данном случае мне это никак не помогло бы :)
2) Это точно, но идея в том что static заменяется в IL коде явно на два других ключевых слова.
3) напишу в ответах
4) Точно, тоже напишу подробнее в ответах
6) Ну не всё, но многое… Выше часть написали
7) FCL == Framework Class Library — библиотека классов дот нет фреймворк
Вот, например, может быть такое что код работает и вроде всё хорошо, но стоит немного переделать его и он начинает работать в 40 раз быстрее… Я говорю, например, о понимании различий в работе CLR со значимыми и не значимыми типами…