Sinclair однажды (17 июня 2008 [Вторник] 07:21) писал:
> S>C++ в любом случае потребляет больше память, хоть и незначительно. Издержки производства, так сказать... > S>Да и вызовы в с++ частенько лишний шаг по vtable делают... > Не позорься. Этот миф был развеян еще до того, как ты вилкой кушать научился.
Тебе страничку книги сфотографировать, где это написано?
Здравствуйте, Sheridan, Вы писали:
>> S>Да и вызовы в с++ частенько лишний шаг по vtable делают... >> Не позорься. Этот миф был развеян еще до того, как ты вилкой кушать научился. S>Тебе страничку книги сфотографировать, где это написано?
А я тебе подкину кусок кода где ни одной виртуальной функции
и посмотрю как ты там vtbl искать будешь.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Sheridan, Вы писали:
>> S>Да и вызовы в с++ частенько лишний шаг по vtable делают... >> Не позорься. Этот миф был развеян еще до того, как ты вилкой кушать научился. S>Тебе страничку книги сфотографировать, где это написано?
Тебе сфотографировать забор, на котором кое-что известное написано?
CreatorCray однажды (17 июня 2008 [Вторник] 09:44) писал:
>>> S>Да и вызовы в с++ частенько лишний шаг по vtable делают... >>> Не позорься. Этот миф был развеян еще до того, как ты вилкой кушать научился. > S>Тебе страничку книги сфотографировать, где это написано? > А я тебе подкину кусок кода где ни одной виртуальной функции > и посмотрю как ты там vtbl искать будешь.
Кусочек кода — согласен. Кусочек кода можно по всякому написать.
А вот в проекте, с использованием библиотек, stl, и прочего какраз таки и появляется это "частенько".
CreatorCray я не против с++, я даже за. Его удобство с головой покрывает все издержки.
Здравствуйте, Sheridan, Вы писали:
S>CreatorCray однажды (17 июня 2008 [Вторник] 09:44) писал:
>> S>Тебе страничку книги сфотографировать, где это написано?
да, с годом написания книги, пожалуйста.
S>Кусочек кода — согласен. Кусочек кода можно по всякому написать.
тем не менее ты, ничтоже сумняшеся, делаешь заявления типа "C++ в любом случае потребляет больше память".
S>А вот в проекте, с использованием библиотек, stl, и прочего какраз таки и появляется это "частенько".
Ну давай сравним, скажем, сортировку в стиле С++ (std::sort, std::less) и qsort (подсказка — в qsort ты передаешь указатель на функцию сравнения, так что у тебя там тучу раз будет сделан косвенный вызов функции сравнения, а в C++ все инлайновое).
А еще давай сравним производительность сишной программы и С++ метапрограммы, когда половина исполняется вообще на этапе компиляции.
Меня вообще удивляет, в С вызовы функций по указателям на каждом шагу, и ничего, а в С++ абсолютно такой же вызов по указателю в vtbl — все, немерянные издержки.
S>CreatorCray я не против с++, я даже за. Его удобство с головой покрывает все издержки.
Твоя подпись в тему
S>-- S>...belive in the matrix...
Здравствуйте, Sheridan, Вы писали:
S>shrecher однажды (17 июня 2008 [Вторник] 03:40) писал:
>> Какие есть и этому рад. Кстати, главное не проекты, а сколько платят >> Любой большой проект можно разделить на подмодули и компилировать только их. S>Надо же, ты поддерживаеш одно из основных правил линукса — не плодить монстров, а писать много мелких программок-утилиток.
Это правило появилось еще до того, как Линус появился.
Не надо все себе присваивать.
>> I>Как на счет времени компиляции около двух трех часов на современном железе ? >> Ну тогда тебе точно на С переходить. S>А чего не на перл/пхп? там вообще компилить ненадо.
Здравствуйте, Cyberax, Вы писали:
S>>Тебе страничку книги сфотографировать, где это написано? C>Тебе сфотографировать забор, на котором кое-что известное написано?
Здравствуйте, shrecher, Вы писали:
I>>Как на счет времени компиляции около двух трех часов на современном железе ?
S>Ну тогда тебе точно на С переходить.
Я перешел на дотнет. Проект такого же масштаба компилится от силы пятнадцать минут.
S>>>Это очень незначительный overhead особенно на современном железе. Сколько сейчас стоит 1 Gb памяти?
I>>Это огромный оверхед на самом деле. Для платформы i32 разумеется.
S>В смысле? Если твоя программа будет на 5 мб, а 6 мб требовать это пользователей не волнует.
Программа кушает около полуторагигабайт памяти. лишние lpVtbl дают и вовсе выход за границы процесса, в виндовсе это 2гб и планками памяти это не лечится.
Можно сделать 3гб, но это требует серверную версию и особую линковку проекта.
Ikemefula однажды (17 июня 2008 [Вторник] 13:06) писал:
> S>Ну тогда тебе точно на С переходить. > Я перешел на дотнет. Проект такого же масштаба компилится от силы пятнадцать минут.
Ну еще-бы интерпритаторокомпилятор долго компилил
Сергей однажды (17 июня 2008 [Вторник] 13:26) писал:
> S>Ну еще-бы интерпритаторокомпилятор долго компилил > Дело не в этом. Наример, паскаль компилируется тоже очень быстро.
Я подозреваю это у него изза жесткости самого языка, в частности изза жеско привязанного места расположения объявлений переменных...
Здравствуйте, Sheridan, Вы писали:
S>Сергей однажды (17 июня 2008 [Вторник] 13:26) писал:
>> S>Ну еще-бы интерпритаторокомпилятор долго компилил >> Дело не в этом. Наример, паскаль компилируется тоже очень быстро. S>Я подозреваю это у него изза жесткости самого языка, в частности изза жеско привязанного места расположения объявлений переменных...
Объявление переменных здесь абсолютно ни при чем.
Просто в С самая уродская схема подключения пакетов из всех возможных (рекурсивное текстовое включение препроцессором).
Здравствуйте, jazzer, Вы писали:
J>Объявление переменных здесь абсолютно ни при чем. J>Просто в С самая уродская схема подключения пакетов из всех возможных (рекурсивное текстовое включение препроцессором).
А если сюда добавить ещё и C++-ные шаблоны, то вообще туши свет
Здравствуйте, Sheridan, Вы писали:
>> S>C++ в любом случае потребляет больше память, хоть и незначительно. Издержки производства, так сказать... >> S>Да и вызовы в с++ частенько лишний шаг по vtable делают... >> Не позорься. Этот миф был развеян еще до того, как ты вилкой кушать научился. S>Тебе страничку книги сфотографировать, где это написано?
Будь добр, сфотографируй и выложи куда.
Только что бы это был действительно лишний шаг по vtbl и с объяснением, как надо без этого шага.
Здравствуйте, Sheridan, Вы писали:
S>CreatorCray однажды (17 июня 2008 [Вторник] 09:44) писал:
>>>> S>Да и вызовы в с++ частенько лишний шаг по vtable делают... >>>> Не позорься. Этот миф был развеян еще до того, как ты вилкой кушать научился. >> S>Тебе страничку книги сфотографировать, где это написано? >> А я тебе подкину кусок кода где ни одной виртуальной функции >> и посмотрю как ты там vtbl искать будешь. S>Кусочек кода — согласен. Кусочек кода можно по всякому написать. S>А вот в проекте, с использованием библиотек, stl, и прочего какраз таки и появляется это "частенько".
Конкретный пример приведи пожалуйста, желательно что бы я смог скомпилить запустить дебугер и увидеть этот лишний заход в lpVtbl
Здравствуйте, jazzer, Вы писали:
J>Меня вообще удивляет, в С вызовы функций по указателям на каждом шагу, и ничего, а в С++ абсолютно такой же вызов по указателю в vtbl — все, немерянные издержки.
ну издержки в с++ побольше будут в ряде случаев. Размер указателя на метод может быть больше 4 в с++ на платформе i32. В с это всегда 4.
Т.е. это неравноценное сравнение, в с придется в таком случае чуток боьлше всякой всячины написать.
Здравствуйте, WFrag, Вы писали:
J>>Объявление переменных здесь абсолютно ни при чем. J>>Просто в С самая уродская схема подключения пакетов из всех возможных (рекурсивное текстовое включение препроцессором).
WF>А если сюда добавить ещё и C++-ные шаблоны, то вообще туши свет
Здравствуйте, Sheridan, Вы писали:
>> S>Ну тогда тебе точно на С переходить. >> Я перешел на дотнет. Проект такого же масштаба компилится от силы пятнадцать минут. S>Ну еще-бы интерпритаторокомпилятор долго компилил
Дело не в этом. У C++ синтаксис очень сложный. Кроме того, из-за #include очень много текста попадает в поле зрения компилятора — ему приходится просматривать хидеры по сто раз.