Цитата:
Сообщение от Knott
1) Ну почему так сразу, ты слыхал про такую штуку как оптимизация.
Для .NET она тоже сушествует. Надо соблюдать её и всё будет ок.
|
Да ну? В таком случае, эта оптимизация должна не просто сводить количество дополнительных действий к нулю, а делать его отрицательным!
Цитата:
Сообщение от Knott
2) Ты слыхал про утилиту ngen.exe? NativeGENERATOR переводится. Она делает очень быстрые native'ные файлы. Хотите сравнить две анологичные проги на C# и на С++ - ок я могу это устроить. Да и ктомуже если вы не поняли я хочу подметить что С# код оптимизируется под машину юзера - он будет использовать(Я имею ввиду код) проц на полную. Он учитывает начиная от разрядности до дополнительного набора инструкций.
|
О! Оптимизирующийся под машину юзера код. Смешно

. Во-первых, мне крайне интересно, что он вообще может использовать, кроме количества ядер процессора. А использование количества ядер процессора требует распараллеливание. А распараллеливание - штука черезвычайно сложная, на должном уровне ее только человек может сделать. Набор интструкций, кстати, у современных процессоров почти одинаков. И еще мне интересно, откуда эта утилита будет узнавать о выходе новых процессоров - получается, что она устареет сразу после своего выхода. А ведь на ее переписывание при появленнии новой модели тоже время нужно. Кстати, откуда эта утилита будет знать, а нужна ли
вообще юзеру такая "оптимизация"? К примеру, хочу ли я, чтобы архивирующийся WinRAR жрал ресурсы с обоих ядер моего двухядерника, или я на втором проце в кваку поиграть хочу? Так что такая утилита должна быть не просто "умной" - она должна чуть ли не сильным AI быть! Что-то я не слышал про получение первой премии Тьюрига...
Про использовании разрядности процессора: оно приносит пользу только в специфических задачах, и их вполне можно изначально скомпилить в двух вариантах. К тому же я не совсем понимаю, как вообще можно написать, например, сетевое приложение, не зная, сколько в каком типе бит у тебя будет. Будешь слать по сети вроде 32-х битное число, а оно - опа! - 64-х битным станет. А откуда компилятору знать, что в нем у тебя не может быть числа, больше чем 1000000, чисто по конструкции программы?
Цитата:
Сообщение от Knott
А теперь про С++. Интересно можно ли на С++ сделать такойже оптимизированый код как на С#. Мне интересно кто это будет делать на конечной машине - млжет юзер или святой дух?
|
Оптимизация кода на машине юзера теряет смысл хотя бы потому, что ее конфигурация не постоянна. Регулярно меняются драйверы, устройства, ОС, наконец! Такая программа перед каждым запуском должна перекомпилироваться, да и во время работы тоже, потому что постоянно меняется окружение, другие программы и т.п., и это много на что влияет. Да, C++-код оптимизироваться на машине юзера не может, но его, во-первых, можно изначально скомпилировать под различные конфигурации, и ставить юзеру в зависимотсти от его конфигурации соответствующий экзешник, а во-вторых, такую оптимизацию на должном уровне написать практически невозможно по причинам, указаным выше.
Кстати, оптимизация C++ - программ во многом базируется на вещах, с которыми в C# играться нельзя - например, на адресной арифметике.
Цитата:
Сообщение от Knott
3) Ты хоть понял что сам сказал  ?
|
А ты хоть знаешь, что такое виртуальная функция? Судя по всему, нет.
Цитата:
Сообщение от Knott
ЗЫ. Возраст и образование не имеет значения - слыхали про 16 летнего подростка который выпустил свой LiveCD Linux дистрибутив.
ЗЫЫ. С++ я знаю, но не имею большого опыта
|
Возраст - да. Образование - нет. Гении всегда есть, но их мало, и не надо приводить единичные примеры. И на вопрос об образовании ты не ответил.