|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatИ даже так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: powershell 1. 2. 3. 4.
Статик самый медленный. Причем, что интересно, что вызовы виртуального метода и метода интерфейса быстрее чем обычного. Бред какой то. Протестируй нормально. В любом случае, при такой разнице в пределах погрешности, скорость не аргумент. {C# и скорость ахах....} ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 01:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglБред какой то. Протестируй нормально. Код я привел. Можешь сам его собрать, запустить и посмотреть SiemarglВ любом случае, при такой разнице в пределах погрешности, скорость не аргумент. Я тоже самое писал. Только некоторые стали тут доказывать что разница в несколько тактов на вызове метода это писец как важно. SiemarglC# и скорость ахах. Есть ряд случаев, когда нетовский рантайм может уделать по производительности unmanaged языки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 04:07 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Siemargl, Да. Скорость не аргумент в данной теме. Только как дымовая завеса при обсуждении. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 08:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjSiemargl, Да. Скорость не аргумент в данной теме. Только как дымовая завеса при обсуждении. Мне, однако, все-таки, пипец любопытно стало - как так выходит, что статический метод по вызову самый медленный. Релизная сборка, чистый запуск из командной строки - и он стабильно отстаёт по скорости от любого другого вызова в полтора раза. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 09:15 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, вы жо умный посмотрите во что скомпилилось... происки оптимизатора? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 10:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, вот тут простым языком немного общих рассуждений на эту тему... х.з. ни когда не приходилось биться за микросекунды... в основном исходят из здравого смысла, семантики самой задачи, а не тупо следуют скрижалям... так что спор инстанс вс статик - это спор между "тупоконечниками и остроконечниками" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:02 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
buserfkthat, вы жо умный посмотрите во что скомпилилось... происки оптимизатора? Оптимизация дефолтная. Для чистоты эксперимента поставил еще аттрибуты Код: c# 1.
и даже попробовал сделать наоборот Код: c# 1.
Результаты одни и те же, причем аттрибуты эти, похоже, вообще никак не влияют (м.б. в нынешней версии компилятора они вообще игнорируются) Собирал под .net core 3 и под обычный .net 4.6 и никакой разницы - везде статик тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:25 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Не знаю. Никогда не интересовало. Как тут сказали, мне платят за другие вопросы) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:26 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
buserfkthat, вот тут простым языком немного общих рассуждений на эту тему авторIn theory, a static method should perform slightly better than an instance method Ну вот в том-то и дело, что "in theory", а вот я смотрю и вижу сейчас, что все совсем наоборот. Разница, конечно, совершенно ерундовая, как я уже говорил я бы даже внимания обращать на неё не стал бы никогда, но мне вот интересно, почему все-таки так получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВAntonariyВ общем, я понял: А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. ваш взлетел? что за продукт? любопытно, какую архитектура и принципы разработки используете? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухЕвгенийВпропущено... А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. ваш взлетел? что за продукт? любопытно, какую архитектура и принципы разработки используете? мазохист ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 16:46 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosДмитрий Мухпропущено... ваш взлетел? что за продукт? любопытно, какую архитектура и принципы разработки используете? мазохист Мазохизм - склонность получать удовольствие, испытывая унижения, насилие или мучения . Что же из вышеперечисленного нас ожидает? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 16:53 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, счас будет тебе делать мозги, а ты получишь от этого кайф ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 16:59 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosДмитрий Мух, счас будет тебе делать мозги, а ты получишь от этого кайф Что мне будут делать? Выражайся, если можно, понятным языком. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, е***ь мозг всякими лаунчерами ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:28 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosДмитрий Мух, е***ь мозг всякими лаунчерами ЕвгенийВ - это же не ВМоисеев. Я надеюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:41 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухViPRosДмитрий Мух, е***ь мозг всякими лаунчерами ЕвгенийВ - это же не ВМоисеев. Я надеюсь :) ааааааааааа перепутал, блин :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:51 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВпропущено... А ну ка друг мой, приведи работающий пример утечки памяти из за статиков. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Наиболее часто встречающаяся ситуация сродни этой - это подписаться на какой-нибудь статический ивент, а потом от него не отписаться. Этот не утечка памяти. Здесь все указатели на выделенную память сохранены и могут быть освобождены в любой момент. Утечка - это выделенная память, на которую нет указателей и программа потеряла над ней контроль. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 02:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatSiemarglБред какой то. Протестируй нормально. Код я привел. Можешь сам его собрать, запустить и посмотреть Проверил, добавил тестирование вызова стат.класса, попробовал убрать накладные от лямбды, исключить выбрасывание кода оптимизатором. У меня в виртуалке (VS2017, release, NET4.6) Not static: 00:00:00.3894198 Virtual: 00:00:00.5584478 Interface Call: 00:00:00.3800740 Static: 00:00:00.3692603 В ideone https://ideone.com/qTPeHC Not static: 00:00:00.1811481 Virtual: 00:00:00.2084212 Interface Call: 00:00:00.1812678 Static: 00:00:00.1848647 Собственно, только виртуальный вызов заметно медленнее, остальное в пределах погрешностей ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 03:53 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglЭтот не утечка памяти. Здесь все указатели на выделенную память сохранены и могут быть освобождены в любой момент. Утечка - это выделенная память, на которую нет указателей и программа потеряла над ней контроль. Объекты Foo никогда освобождены не будут, потому что указатели на них сохранены в статической (т.е. глобальной переменной). Пока их оттуда руками не уберешь, то они так и будут там висеть, пока приложение не завершится. Если такая шляпа происходит, например в веб-приложении, то в итоге будет жопа - я на практике такое наблюдал и даже не раз. А так-то можно сказать, что, типа, да, утечек вообще никогда не бывает, потому что из приложения, типа, все равно когда-нибудь выйдем и память при этом освободится, по-твоему так, что ли? Есть еще более смешная известная шляпа, называется "воскрешение объекта" ("object resurrection"). Правда, это уже из разряда извращений. Код: c# 1. 2. 3. 4. 5. 6. 7.
Объект, уже идя под сборку мусора, сам себя вытягивает за волосы. :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 03:55 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatSiemarglЭтот не утечка памяти. Здесь все указатели на выделенную память сохранены и могут быть освобождены в любой момент. Утечка - это выделенная память, на которую нет указателей и программа потеряла над ней контроль. Объекты Foo никогда освобождены не будут, потому что указатели на них сохранены в статической (т.е. глобальной переменной). Пока их оттуда руками не уберешь, то они так и будут там висеть, пока приложение не завершится. Если такая шляпа происходит, например в веб-приложении, то в итоге будет жопа - я на практике такое наблюдал и даже не раз. А так-то можно сказать, что, типа, да, утечек вообще никогда не бывает, потому что из приложения, типа, все равно когда-нибудь выйдем и память при этом освободится, по-твоему так, что ли? Именно это и нужно программисту при статик. Освобождение памяти при завершении процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 07:52 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Siemargl, Результаты тестирования отменяются, оптимизатор выкинул _ВСЁ_ Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 09:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Хотя нет, показалось с непросыпу Дебажная сборка тоже самое распределение Not static: 00:00:02.1452922 Virtual: 00:00:02.2355484 Interface Call: 00:00:01.3028084 Static: 00:00:01.5658457 NNNs - 502500001, 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 09:23 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
>ViPRos, вчера, 17:28 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312102&msg=21882180][21882180] >е***ь мозг всякими лаунчерами <Интересно, чем же тебя так достал пускач. У меня инфосистема реализуется многими приложениями, а к ним надо иметь доступ, их надо запускать, надо смотреть за их изменениями. Этим и занимается лаунчар. Что здесь плохого - то? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 09:37 |
|
|
start [/forum/search_topic.php?author=%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD%D1%8B%D1%87&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 369ms |
total: | 633ms |
0 / 0 |