Обновить
13
0
Elastep @Elastep

Пользователь

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

6) Ну не всё, но многое… Выше часть написали
7) FCL == Framework Class Library — библиотека классов дот нет фреймворк
может быть уже слишком поздно что-то делать, когда появились проблемы… Как работает CLR действительно зубрить не надо, а основы — это такое размытое понятие :)
Вот, например, может быть такое что код работает и вроде всё хорошо, но стоит немного переделать его и он начинает работать в 40 раз быстрее… Я говорю, например, о понимании различий в работе CLR со значимыми и не значимыми типами…
Они хотели, чтоб это было не обязательно знать… Когда дело доходит до сложных систем неожиданно получается, что знать всё таки надо было…
как говорят сами разработчики — такова бы была электронная почта, если бы её придумывали только сейчас… посмотрим, получится ли у них обрести такую же популярность…

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность