|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
D129Алексей КИнтерфейсы? Не, я в том смысле, что общие библиотеки будут использовать более вместимые типы - для обеспечения прозрачности. И как раз преобразовывать float в double....Ну шаблоны/макросы есть, может и не придётся. D129А лямбды - как-то должна быть организована уборка мусора - разве нет?Возможна малобюджетная реализация без замыканий, как в Delphi. D129И в результате - "брюки (С++) превращаются в элегантные шорты".... Все равно приходим к ситуации, что нанооптимизации не имеют смысла (оговорки естественно есть).Да. Но возможность использования в программе 10+ способов работы со строками благоприятно влияет на ЧСВ. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:51 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
НемоКэп42Eoltпропущено... Какая еще оптимизация? Наличие галочки Optimize Code в свойствах проекта? На оптимизацию нужно большое время, можете сравнить время сборки проекта на плюсах с опцией /O2 и шарпового. У JIT-просто нет времени нормально оптимизировать код, он должен как можно быстрее скомпилировать код и запустить его, чтобы не вызывать раздражение пользователя. А вроде в шарпе есть настройка типа "зааптимизировать прям щас, джиттер отключить"? Т. е. можно скомпилить для конкретной платформы и джиттер на этой платформе работать не будет. Можно на машине, где будет запускаться JIT компиляция и исполняться код предкомпилировать (подготовить) вызываемые методы из сборок 'вручную' заранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:56 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronМожно на машине, где будет запускаться JIT компиляция и исполняться код предкомпилировать (подготовить) вызываемые методы из сборок 'вручную' заранее. Да можно, но сборщик мусора вашим пожеланиями не управляется. Это в некоторых игрушках на C# хорошо видно, когда игровой процесс замораживается на какое-то время, сразу ясно что GC сейчас работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:59 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Сдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 14:59 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltAxeleronМожно на машине, где будет запускаться JIT компиляция и исполняться код предкомпилировать (подготовить) вызываемые методы из сборок 'вручную' заранее. Да можно, но сборщик мусора вашим пожеланиями не управляется. Это в некоторых игрушках на C# хорошо видно, когда игровой процесс замораживается на какое-то время, сразу ясно что GC сейчас работает.О недостатках сказал, теперь самое время поговорить о преимуществах. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:00 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltДа можно, но сборщик мусора вашим пожеланиями не управляется. Это в некоторых игрушках на C# хорошо видно, когда игровой процесс замораживается на какое-то время, сразу ясно что GC сейчас работает. Т.е. вы искренне считаете, что памятью в .NET нельзя управлять на манер C++? Ну если так, то да ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:05 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КО недостатках сказал, теперь самое время поговорить о преимуществах. Это недостаток знаний и опыта всего лишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:06 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КСдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... JIT это не единственная причина, по-которой управляемые приложения медленнее нативных. Тут еще огромный слой библиотек над нативным Win32/64 API. Это когда вызываешь функцию .NET а она обертка над WinAPI функцией. Но можно сразу вызывать WinAPI напрямую не пользуясь какой-то там .NET прокладкой. Экономить время и ресурсы. Это и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д. Понятно, что для школьника и студента такие проверки необходимы, но профи в нативных языках всегда выключает эти проверки, чтобы ускорить работу кода и ничего, все как-то работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:10 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eolt, И какой смысл тогда вообще использовать managed код? Или есть вера в то, что его придумали только для студентишек? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:12 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltРуссиновича читали? На слабых/загруженных системах, где нет ресурсов для работы JIT, IL-код будет работать в режиме интерпретации. Ссылку и/или цитату не затруднит привести? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:13 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КСдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... JIT это не единственная причина, по-которой управляемые приложения медленнее нативных. Тут еще огромный слой библиотек над нативным Win32/64 API. Это когда вызываешь функцию .NET а она обертка над WinAPI функцией. Но можно сразу вызывать WinAPI напрямую не пользуясь какой-то там .NET прокладкой. Экономить время и ресурсы.И сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. EoltЭто и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д.Откажись от безопасного кода и используй указатели. Скорость выполнения сразу повысится до скорости С++. EoltПонятно, что для школьника и студента такие проверки необходимы, но профи в нативных языках всегда выключает эти проверки, чтобы ускорить работу кода и ничего, все как-то работает."Профи" гораздо важнее надёжность программы, чем незначительный прирост производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:17 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
hVosttАлексей КО недостатках сказал, теперь самое время поговорить о преимуществах. Это недостаток знаний и опыта всего лишь.Все когда-то были такими. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:18 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltJIT это не единственная причина, по-которой управляемые приложения медленнее нативных. Тут еще огромный слой библиотек над нативным Win32/64 API. Это когда вызываешь функцию .NET а она обертка над WinAPI функцией. Но можно сразу вызывать WinAPI напрямую не пользуясь какой-то там .NET прокладкой. Экономить время и ресурсы. Это и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д. Понятно, что для школьника и студента такие проверки необходимы, но профи в нативных языках всегда выключает эти проверки, чтобы ускорить работу кода и ничего, все как-то работает. Давненько подобного бреда не читал. Человек наверное никогда в жизни не слыхал про такое понятие, как "профилирование" и "узкие места". Это синдром школьника с единственно правильным решением ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:18 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КВсе когда-то были такими. :-) Есть подозрения на тонкий троллинг, мистер Ватсон ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:19 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КСдаётся мне, что тормоза .Net к наличию JIT не имеют никакого отношения... JIT это не единственная причина, по-которой управляемые приложения медленнее нативных.Повторюсь, JIT - это вообще не причина. А всякие "развороты циклов", и прочие С++ные оптимизации, можно производить на этапе компиляции C# => IL. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:20 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
hVosttАлексей КВсе когда-то были такими. :-) Есть подозрения на тонкий троллинг, мистер Ватсон Да и пусть. Лучше чем ничего. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:21 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КО недостатках сказал, теперь самое время поговорить о преимуществах. Преимущества: - Простота и дешевизна разработки (почти как на VBA или 1С) - не нужно управлять памятью (GC) - не нужно освобождать ресурсы (GC) - не нужно учитывать разрядность платформы (AnyCPU) - не нужно изучать UI (всегда можно накидать контролов в WinForms) - не нужно изучать WinAPI (есть толстая прокладка .NET) - не нужно учиться работать с указателями (это же небезопасно!) - не нужно возится с ключами оптимизацией (есть галочка Optimize Code) - не нужно писать ассемблерные вставки (это же слишком сложно) - etc ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:22 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltЭто и дурацкие, не отключаемые в .NET проверки переполнения переменных, выходы за границы массивов и т.д. Отключать проверку за выходы границы масивов - это то самое жгучее желание выстрелить себе в ногу? А про переменные - откройте для себя (последняя опция, кстати, по умолчанию всегда отключена): 1. checked / unchecked . 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:22 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronEolt, И какой смысл тогда вообще использовать managed код? Или есть вера в то, что его придумали только для студентишек? Только одна причина. Разработка на managed коде значительно быстрее/дешевле, чем в нативном. Разумеется за счет падения производительности ваших приложений. За скорость и дешевизну создания кода платим его медленной работой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:26 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Eolt- Простота и дешевизна разработки (почти как на VBA или 1С) - не нужно управлять памятью (GC) - не нужно освобождать ресурсы (GC) - не нужно учитывать разрядность платформы (AnyCPU) - не нужно изучать UI (всегда можно накидать контролов в WinForms) - не нужно изучать WinAPI (есть толстая прокладка .NET) - не нужно учиться работать с указателями (это же небезопасно!) - не нужно возится с ключами оптимизацией (есть галочка Optimize Code) - не нужно писать ассемблерные вставки (это же слишком сложно) - зависит от требований к программе; - зависит от требований к программе - при желании вполне можно; - зависит от требований к программе - при желании вполне можно; - в ряде случаев очень даже нужно (Platform Target в свойствах проекта, ага) - для кучи случаев этой прокладки не хватает (поищите по форуму сообщения от Дмитрий77), так что WinAPI вполне доводится использовать; - allow unsafe code в свойствах проекта+директива unsafe - и вперед, было бы желание - и слава б-гу - и слава б-гу - etc ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:28 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
Алексей КИ сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. Я не знаю сколько она потребляет. Не замерял. Я всего лишь расстроенный пользователь .Net приложений, которого печалит медленный и неотзывчивый GUI от .NET. У меня есть комп на i7 с 16 Гигами оперативки, вот на этой машине дотнетовские приложения ведут себя прилично. Почти не тормозят. Но у многих пользователей на компах обычные Celeron с 2-4 гигами оперативки и 32-битной версией Windows, вот там торможение управляемого кода очень четко заметно. Даже выполнение обычных операций в UI приводит к замедленному отклику приложения. Например нажимая кнопку Открытия файла на риббоне, я ожидаю появление стандартного окна открытия файла почти сразу, как это происходит в нативных приложениях написанных на C++, и меня расстраивает, когда это окно в шарповом приложении прорисовывается через 5 секунд, со скрипом жесткого диска и кучей сожраной памяти. Печально, когда вывод окна предосмотра печати с содержимым занимает на управляемом приложении секунд 5-10, ведь в нативном приложении оно отрисовывается мгновенно. автор"Профи" гораздо важнее надёжность программы, чем незначительный прирост производительности. Прирост получается слишком значительным, чтобы его игнорировать, тут есть из-за чего помучится с отладкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:42 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltAxeleronEolt, И какой смысл тогда вообще использовать managed код? Или есть вера в то, что его придумали только для студентишек? Только одна причина. Разработка на managed коде значительно быстрее/дешевле, чем в нативном. Разумеется за счет падения производительности ваших приложений. За скорость и дешевизну создания кода платим его медленной работой. Да, на managed ЯП быстрее писать программы и дешевле, но для того они и создавались - для решения определенных типов задач. Не вижу смысла писать вэб приложение на unmanaged C++. Скорость и цена разработки в данном случае многократно окупят мнимую низкую скорость приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:43 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
AxeleronНе вижу смысла писать вэб приложение на unmanaged C++. Скорость и цена разработки в данном случае многократно окупят мнимую низкую скорость приложения. Вот именно - мнимую. В качестве примера в который раз можно привести stackoverflow с его даппером. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:47 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КИ сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. Я не знаю сколько она потребляет. Не замерял. Я всего лишь расстроенный пользователь .Net приложений, которого печалит медленный и неотзывчивый GUI от .NET. У меня есть комп на i7 с 16 Гигами оперативки, вот на этой машине дотнетовские приложения ведут себя прилично. Почти не тормозят. Но у многих пользователей на компах обычные Celeron с 2-4 гигами оперативки и 32-битной версией Windows, вот там торможение управляемого кода очень четко заметно. Даже выполнение обычных операций в UI приводит к замедленному отклику приложения. Например нажимая кнопку Открытия файла на риббоне, я ожидаю появление стандартного окна открытия файла почти сразу, как это происходит в нативных приложениях написанных на C++, и меня расстраивает, когда это окно в шарповом приложении прорисовывается через 5 секунд, со скрипом жесткого диска и кучей сожраной памяти. Печально, когда вывод окна предосмотра печати с содержимым занимает на управляемом приложении секунд 5-10, ведь в нативном приложении оно отрисовывается мгновенно.Ты упоминал MFC, значит работаешь с Visual Studio. Так вот, VS2010+ написан на .Net + WPF. Где там что медленно работает, не связанное с обработкой больших объёмов данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 15:57 |
|
Проблемы с преждевременностью, задержкой и недержанием...
|
|||
---|---|---|---|
#18+
EoltАлексей КИ сколько там потребляет эта "обёртка"? Например, в WinForms основные тормоза связаны с отрисовкой через GDI+. Этот факт, научно доказанный много лет назад, к .Net не имеет никакого отношения. Я не знаю сколько она потребляет. Не замерял.А замерь. Возьми профайлер и убедись в том, что это не C# тормозной, а просто у кого-то руки кривые. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 16:28 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1401694]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
others: | 348ms |
total: | 501ms |
0 / 0 |