И программулинки вида "диспетчера задач" - вотчина MFC/Delphi. - по мне так использовать .net хоть в сколько-нибудь ответственном проекте - рак мозга.
на прошлой странице наше ссылку на говностатью о Чистякова Влада GC в .NET. Знание же об используемом процессоре и других аспектах системы позволит управляемым средам порождать даже более быстрый код, нежели код, созданный оптимизирующими не типобезопасных native-компиляторами (вроде C/C++), так как те вынуждены генерировать код в расчете на обобщенный набор инструкций (вроде набора инструкций Pentium) и не имеют информации о таких аспектах системы, как объем оперативной памяти и размер кэша. - где он нахватался этого бреда?
компиляторы ничего вынуждены. компиляторы делают то, что им скажут. приведем в качестве примера тот же gentoo. скачиваются исходные коды, затем с заданными пользователям флагами программа собирается. если флаги -O2 -march=native -pipe то можно с высокой долей уверенности сказать, что программа будет собрана со всеми необходимыми оптимизациями под конкретное железо. точный размер кучи, насколько мне известно, передать нельзя - но можно передать минимальный. тоже и со стеком.
теперь о коммерческих программах: никто не мешает установщику смотреть, для системы с какими ресурсами он монтирует программу - в play market, вроде как, есть механизмы, чтобы по запросу поступало собранное под конкретную архитектуру приложение. *** главная проблема интернета, что если кто-то гипотетически важный что-то написал, то сразу тучи хомяков начинают принимать это за чистую монету никак это не анализируя.
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
egan писал(а):
главная проблема интернета, что если кто-то гипотетически важный что-то написал, то сразу тучи хомяков начинают принимать это за чистую монету никак это не анализируя.
Вот так и за%;"№;%ся windows-системы всяким хламом в виде ie-тулбаров (каждый по 20-70метров), мэйлру-спутниками, гуардами и пр. неиспользуемой хренью. Сегодня был в ремонте ноут с вин-8 - стоит антивирус-аваст. Неужели он "продвинутей" майкросовтовского встроенного Essential? не верю. По моим наблюдениям нативный антивирь майкросовта держится на уровне Dr.Web`a и Каспера, при этом не тормозит. Боюсь скоро это и популярные (вроде ubuntu) дистры ждёт.
egan писал(а):
если флаги -O2 -march=native -pipe то можно с высокой долей уверенности сказать, что программа будет собрана со всеми необходимыми оптимизациями под конкретное железо.
Вы забыли указать -fomit-frame-pointer. Но он только для прог, в которых абсолютно уверен. Хотя в последних версиях gcc его по дефолту воткнули в -O2, а зря, на мой взгляд...
Мы тут говорили о том, почему "мутит" население от вынь8. Решили, что виновато изменение физионимии и отсутствие реального прогресса в этой ОС. Я попытался призадуматься и понял причину: Отсутствие конкуренции и избыток бабла. Майкрософт расслабилась. Вспомните 2000е - кто мог конкурировать с NT? Почти никто, и WinNT начала завоёвывать серверный сегмент. Что было на десктопах? Да ничего кроме Windows и DOS. WinXP - это был громадный успех(надёжная(по тем временам) серверная платформа на десктопе). Но после этого развитие в майкрософте начало тормозится. Win7 - мноое было изменено (ntfs, многопроцессорность, 64бита )- было развитие, тормозилось, революций уже небыло. Но сейчас и эволюция остановилась... Довод прост: танки (WoT) в которые играю зависли на уровне 200* мохнатого года, ибо двигло до сих пор работает на ДиректХэ-9. Полное отсутствие рахрабов двигать дальше - от ОпенГэЭль они отказались сославшись на "танки и под wine`ом идут - люди играют, зачем делать их кроссплатформенными?". На ДиректХэ 10 и выше сказали - мы вам сделали "улучшенную графику" и "возможности 9го директИкса ещё не исчерпаны". А причиной тому - толстая игла доната. По опросу WG около 70% игроков донатят. При этом у них 2 рекорда гиннеса по кол-ву играющих. Есть бабло - маркетинг работает на "картинку", т.е. появляются самолёты, еженеделные и ежевыходные акции, добавление новых веток развития и т.п. Игроков это привлекает, большинство не удерживается и донатят. Маркетинг приносит бабло... Кардинально менять что-то в двигле игрушки незачем... Застой... Ситуации с виндовс и wot похожи. Как только у компании дела идут хорошо и небо без облаков зачастую их развитие останавливается...
Добавлено спустя 12 минут 39 секунд:
egan писал(а):
по мне так использовать .net хоть в сколько-нибудь ответственном проекте - рак мозга.
Это зависит от рака мозна разраба. люди умубдряются на shell писать Вещи (именно с большой буквы). А сколько быдлокода я видел и на С и на Паскале и даже на АСМе (вроде, человек пишущий прогу на asm должен понимать с чем связывается, но умудряются сортировать массивы по 10Мб пузырьком. и это в не в студенческих поделках, а в продакшене). А сколько "чудо-алгоритмов" видел на 1С, так уму непостижимо.
З.Ы. И снова про дотНет - всё-таки очень охота иметь в байткоде действенную защиту от коррекции. Сейчас многое из дотНета обходится без цифровой подписи (месяца три назад так "продлял триал" до 3011года - заняло 2 часа), а если и есть подпись, то она подменяется на свою - методики искать в гугеле, там целые статьи на енту тему.
Сегодня был в ремонте ноут с вин-8 - стоит антивирус-аваст. Неужели он "продвинутей" майкросовтовского встроенного Essential? не верю. По моим наблюдениям нативный антивирь майкросовта держится на уровне Dr.Web`a и Каспера, при этом не тормозит.
Да, он "продвинутей" и быстрее. И встроенная защита это Windows Defender (Защитник Windows), а Microsoft Security Essentials - отдельный бесплатный пакет. Можешь считать это ответом на "не верю" и "по моим наблюдениям" - если человек не в силах различить продукты, то уровень его понятен.
Member
Статус: Не в сети Регистрация: 20.03.2011 Откуда: Москва
oxy писал(а):
В ГУИ хоть на бейсике или shell пиши, а память исключительно через ОСь выделять/освобождать- тормозов не увидишь
лол? Сборка жрет процессор.
Цитата:
То же можно сказать и о "стандартном списочном" подходе. В реальности - затраты в конструкторе намного превышают затраты malloc().
в реальности затраты в конструкторе на порядок ниже, чем у malloc.
egan писал(а):
компиляторы ничего вынуждены. компиляторы делают то, что им скажут. приведем в качестве примера тот же gentoo. скачиваются исходные коды, затем с заданными пользователям флагами программа собирается. если флаги -O2 -march=native -pipe то можно с высокой долей уверенности сказать, что программа будет собрана со всеми необходимыми оптимизациями под конкретное железо.
Окей, скомпилируй мне программу так, чтобы она учитывала не только модель, но и ревизию процессора. То есть однажды скомпилированный экзешник чтобы скомпилировался с обычными параметрами для третьего пня и работал на нем, но использовал SSE4.2 в i7-3770k, а также автоматически загружал все ядра.
Цитата:
по мне так использовать .net хоть в сколько-нибудь ответственном проекте - рак мозга.
по мне так гнать на какой-то конкретный фреймворк - это ФГМ.
А уж когда я привожу конкретный пример, когда программа на шарпе работает быстрее, чем аналог на C++... Тут уже такой батхерт начинается, не остановить
Забавные холивары С++ вс все остальные, адовы приверженцы простыней и функций const int Foo(const int &a, const int& b) const...
_________________ I would tell you a joke about UDP, but you probably wouldn't get it.
oxy сколько быдлокода я видел и на С - чтобы писать средние программы/прошивки нужно иметь светлый разум, более-менее знать конечные автоматы, примерно представлять как делают то, чем ты планируешь заниматься. я иногда оглядываясь в прошлое вижу такие решения, как я бы сейчас не сделал. пройдет время и то, что сейчас мне кажется светлой мыслью покажется раком.
asm - это когда человека загнали в угол и ему больше ничего не остается. зачем писать на asm на платформах, где программист не стеснен мне непонятно. asm - это крест на переносимости. почти все, кто пишут на asm не вирусы, с успехом стреляют себе в ногу. рано или поздно. так или иначе.
насчет opengl - в gallium3d есть direct3d через state tracker.
Psilon Окей, скомпилируй мне программу так, чтобы она учитывала не только модель, но и ревизию процессора. То есть однажды скомпилированный экзешник чтобы скомпилировался с обычными параметрами для третьего пня и работал на нем, но использовал SSE4.2 в i7-3770k, а также автоматически загружал все ядра. - неправильная механика в своей сути. По целевому запросу должна быть сформирована программа уже собранная под конкретное железо. или, если будет коммерческая программа завязанная на сервис - поставлять в исходных кодах. последние годы я использую дистрибутив, в котором программы поставляются в исходных кодах - в целом я считаю в этом есть смысл.
А уж когда я привожу конкретный пример, когда программа на шарпе работает быстрее - я в основном пишу прошивки, а не программы. соответственно предпочитаю С другим языкам. неприязнь к .net осталась с давних пор - хотя и до сих пор время от времени он вызывает глубокие вопросы. *** если нужна предсказуемость - лучше использовать java. если нужна скорость - лучше использовать с/с++.
Member
Статус: Не в сети Регистрация: 20.03.2011 Откуда: Москва
egan писал(а):
неправильная механика в своей сути. По целевому запросу должна быть сформирована программа уже собранная под конкретное железо. или, если будет коммерческая программа завязанная на сервис - поставлять в исходных кодах. последние годы я использую дистрибутив, в котором программы поставляются в исходных кодах - в целом я считаю в этом есть смысл.
ну часто нельзя предугадать железо, на котором будет запускаться. Конечно, в моем случае я разрабатываю серверное приложение, соответственно все железо закреплено в ТЗ, но не всем так везет
Цитата:
я в основном пишу прошивки, а не программы. соответственно предпочитаю С другим языкам. неприязнь к .net осталась с давних пор - хотя и до сих пор время от времени он вызывает глубокие вопросы.
А я в основном пишу на net. Хотя считаю С очень красивым и эстетичным языком (в отличие от С++), и конечно же никогда бы не советовал писать прошивки на .net. Но точку зрения прикладных программистов я озвучил - .Net далеко не так плох, как о нем говорят.
Цитата:
если нужна предсказуемость - лучше использовать java. если нужна скорость - лучше использовать с/с++.
java я не люблю хотя бы за кривой сборщик мусора, кривую же реализацию дженериков и отсутствие всякого милого синтаксического сахара, вроде лямбд. Единственный плюс Java - 3ккк девайсов, которые могут её запустить (Спасибо нокии, любая мобилка за 30$ уже умела запускать java-приложения) и как следствие, тонны наследного кода. Но мне ценнее качество. А на примере того же Asp.Net, Microsoft показала, что может сделать популярный продукт, при этом открыть все его исходники, и вместо велосипедирования собственных проприетарных стандартов использовать опен-сорсные, например jquery, JSON и пр.
_________________ I would tell you a joke about UDP, but you probably wouldn't get it.
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
oxy писал(а):
И встроенная защита это Windows Defender (Защитник Windows), а Microsoft Security Essentials - отдельный бесплатный пакет. Можешь считать это ответом на "не верю" и "по моим наблюдениям" - если человек не в силах различить продукты, то уровень его понятен.
И как этот отдельный пакет скачать для вынь8?
Цитата:
В Windows 8 и Windows RT Защитник Windows обеспечивает такой же уровень защиты от вредоносных программ, как и программа Microsoft Security Essentials.
Разве в вынь8 Essentials не стал частью защитника?
Psilon писал(а):
Окей, скомпилируй мне программу так, чтобы она учитывала не только модель, но и ревизию процессора.
Вообще-то компилерам насрать на твой проц.Им интересен размер кэшей, набор поддерживаемых инструкций и кол-во ядер/потоков. А что у тебя стоит i7-3770k или i7-4770k - глубоко и с колокольни. Код будет одинаково хорошо работать на обоих. И да. Инструкции вида SSE4.2 он начинает использовать, если ему про это сказать. А если хочешь чтобы всё в одном ЕХЕнике было, скомпилируй ответственный за быстродействие код в 5ти модулях, стаически слинкуй, а в основной проге определяй на каком проце работаешь и используй нужный тебе модуль. Человек имел ввиду несколько друое - получаеш прогу из майкрософтсторе, а магаз собирает её именно под твой проц.
Psilon писал(а):
лол? Сборка жрет процессор.
Это я говорил о том, что в чисто-гуёвой проге быстродействие кода не сильно важно - узер всё-равно слишком медленно двигает мышь/тянется к кнопке.
Psilon писал(а):
в реальности затраты в конструкторе на порядок ниже, чем у malloc.
Ну это если он только нулями заполняет 5 переменных. А если ещё и файлик открывает?
Psilon писал(а):
по мне так гнать на какой-то конкретный фреймворк - это ФГМ. А уж когда я привожу конкретный пример, когда программа на шарпе работает быстрее, чем аналог на C++... Тут уже такой батхерт начинается, не остановить Забавные холивары С++ вс все остальные, адовы приверженцы простыней и функций const int Foo(const int &a, const int& b) const...
Да вроде никто и не гонит:
oxy писал(а):
А по сути каждый язык/подход к программированию занимает свою нишу. И программулинки вида "диспетчера задач" - вотчина MFC/Delphi.
egan писал(а):
я иногда оглядываясь в прошлое вижу такие решения, как я бы сейчас не сделал. пройдет время и то, что сейчас мне кажется светлой мыслью покажется раком.
Ну дык человек такое существо, что ему не чуждо развитие. Смотрел недавно на проектик свой (фронтэнд к самодельному программатору SDA555XFL) - писал на первой моей работе сразу после универа. Так коряво всё написано -ужас. А, призадумался, как её ускорить - понял, что ускорять-то и нечего, за год сопровождения выжал из проги всё-что можно.
egan писал(а):
asm - это когда человека загнали в угол и ему больше ничего не остается. зачем писать на asm на платформах, где программист не стеснен мне непонятно. asm - это крест на переносимости. почти все, кто пишут на asm не вирусы, с успехом стреляют себе в ногу. рано или поздно. так или иначе.
Т.е. писать прошивки, драйвера, или выжимать из критического куска кода все соки - это стоять загнанным в угол и стрелять по своим ногам? У АСМа есть своя ниша, и никто не сможет его оттуда подвинуть, даже чистый С.
Psilon писал(а):
java я не люблю хотя бы за кривой сборщик мусора, кривую же реализацию дженериков и отсутствие всякого милого синтаксического сахара, вроде лямбд.
А я вообще не люблю интерпретируемые языки или языки VM. Но не отрицаю их права на существование и их целевую нишу. Я не писал серверных приложений, но всё-таки для них лучше .NETы, java и даже php. Но перепишите nginx на жабе или дотнете - и получите дикий тормоз.
Psilon писал(а):
А на примере того же Asp.Net, Microsoft показала, что может сделать популярный продукт, при этом открыть все его исходники, и вместо велосипедирования собственных проприетарных стандартов использовать опен-сорсные, например jquery, JSON и пр.
У них есть много хороших проектов. Тот же VisualStudio. В правильном направлении движутся ребята, но не всё так хорошо в их королевстве, особенно в среде офиса и windows.
Member
Статус: Не в сети Регистрация: 20.03.2011 Откуда: Москва
oxy писал(а):
Ну это если он только нулями заполняет 5 переменных. А если ещё и файлик открывает?
мы как бы эквивалентные действия сравниваем. В данном случае инструкцию Newobj и функцию malloc. Или мы будем сравнивать программу на С типа pritnf("Hello"); и программу на шарпе, находящую наиболее подходящий закон распределения для заданной выборки...
Цитата:
Вообще-то компилерам насрать на твой проц.Им интересен размер кэшей, набор поддерживаемых инструкций и кол-во ядер/потоков. А что у тебя стоит i7-3770k или i7-4770k - глубоко и с колокольни. Код будет одинаково хорошо работать на обоих. И да. Инструкции вида SSE4.2 он начинает использовать, если ему про это сказать. А если хочешь чтобы всё в одном ЕХЕнике было, скомпилируй ответственный за быстродействие код в 5ти модулях, стаически слинкуй, а в основной проге определяй на каком проце работаешь и используй нужный тебе модуль. Человек имел ввиду несколько друое - получаеш прогу из майкрософтсторе, а магаз собирает её именно под твой проц.
VM-языки это и делают, просто не на стороне сервера, а на стороне клиента. А неэффективнсть кода, которую я давно заметил в c#, оказывается допустили нарочно, чтобы излишние оптимизации не тормозили время генерации методов, которое должно равняться микросекундам. Впрочем, они собираются это поправить, причем нехило так, до двух порядков прироста в некоторых случаях http://habrahabr.ru/post/196596/
Цитата:
Это я говорил о том, что в чисто-гуёвой проге быстродействие кода не сильно важно - узер всё-равно слишком медленно двигает мышь/тянется к кнопке.
могу показать собственную говнопрогу, которая жрала по 30мб памяти в секунду и сборка тормозила ГУЙ Офк я потом исправил и теперь она жрет по 2кб в секунду, что более чем приемлимо. потому что на самом деле она не жрет эту память, а просто сборщик ждет подходщего момента, чтобы все сгрести. Все говорят, что .Net приложения жрут память, а на самом деле он просто смотрит, сколько памяти осталось. Если на машине стоит 64ГБ памяти, а прога - не 32битная, то он может спокойной позволить сожрать гиг без сборки мусора. А вот если в этот момент включится какой-нибудь касперский и сожрет 60 гб памяти, то сборщик поймет, что нехорошо сжирать четверть оставшихся ресурсов и быстренько их освободит.
Цитата:
А я вообще не люблю интерпретируемые языки или языки VM. Но не отрицаю их права на существование и их целевую нишу. Я не писал серверных приложений, но всё-таки для них лучше .NETы, java и даже php. Но перепишите nginx на жабе или дотнете - и получите дикий тормоз.
интерпретируемые и я не люблю. И недолюбливаю с динамической типизацией. А вот шарп - это практически мой идеал. Не такой элегантный, как чистый С, и не такой быстрый, но на самом деле не сильно от него отстает, а сахара там столько, что можно подавиться Чего только стоит linq2sql, PLINK, async/await и прочее.
_________________ I would tell you a joke about UDP, but you probably wouldn't get it.
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
Psilon писал(а):
мы как бы эквивалентные действия сравниваем. В данном случае инструкцию Newobj и функцию malloc.
Ну если брать просто malloc(sizeof int) и NewObj int; то тут соглашусь - тормоз будет в выделении памяти.
Psilon писал(а):
могу показать собственную говнопрогу, которая жрала по 30мб памяти в секунду и сборка тормозила ГУЙ
Ну такие весЧи были у кадждого, кто что-то писал сам.
Psilon писал(а):
А вот шарп - это практически мой идеал.
Ну тут каждому своё. Мы разговариваем о разных отраслях и каждый восхваляет своё. Я, например, ни разу не столкнулся с ограничениями С/С++. Не было таких гигантских задач. Хотя нет, один раз было. Обработчик прерывания в виде метода класса писал - чисто для эксперимента (отказ от С и плюшек процедурного программирования). К сожалению не нашёл способа написать на чистом ANSI-стандарте, пришлось плюшки компилятора использовать (префикс/суффикс коды входа/выхода в/из функцию и обработчика прерывания разные + доступ к регистрам и портам). А задача была банальная - написать микросекундную задержку для прог под ДОС/Win16 (в NT уже вытесняющая многозадачность и там это не работало. Многоядер и динамического изменения частоты проца тоже небыло. времена от 286 до пентиум).
Добавлено спустя 17 минут 38 секунд: Я тут снова о винде вспомнил и толкаемом майкрософтом офис365(попытка подсадить на донат). Линухо-дистростроители уже не уважают себя если не упакуют в DVD-дистр OpenOffice, Gimp, несколько браузеров, почтовик, торрент качалки, VLC/mplayer и ещё туеву хучу прог. Т.е. идут к тому, чтобы пользователь получал не только "всё работает из кАроПки", но и предустанавливают проги для повседневных задач хомячка. А мелкософт с виндой? Вчера меняли веник на ноуте Lenovo - ставили на новый веник лицуху win7HB 64 (наклейка на ноуте сохранилась) - Винда нашла дрова на вайфай(к нему и подключились), но не нашла дрова на гигабитную сетевуху даже при обновлении дров через сеть. Пришлось (что бы не лазить по нету полчаса в поисках) ставить сетевую через драйверпак. Вот так работают операционки майкрософта "из коробки"
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения