Category: ПрограммированиеVT C++ Framework Gets a WebsiteFinally, I created the domain and uploaded an old source code snapshot and some descriptions of open-source VT Framework C++ code library. Newer files and more texts are to be added later. А нужен ли козе баян, а C++ - уборщик мусора?...в ряде случаев внешний по отношению к коду сборщик мусора имеет гораздо больше возможностей для эффективного освобождения памяти. Например, он может очищать память блоками, даже если она использовалась разными объектами. В С++ без хитрых хаков такое организовать невозможно. delete очищает только то, что для этого объекта выделил new (и то не всегда — ловкими кастами вполне можно обмануть delete). Чтобы освободить память сразу для множества указателей, надо переопределять new через сишные функции. В C++ можно размещать объекты на стеке, в статическом сегменте и внутри друг друга (предки и поля физически находятся внутри блока памяти содержащего их объекта). Таким образом, затраты на распределение и очистку памяти большого количества объектов (в т.ч. локальных, т.е. наиболее часто конструируемых и разрушаемых) в "плюсах" равну нулю, что по определению уделывает любой сборщик мусора. Даже если речь идёт про кучу: вся иерархия и члены одного объекта в C++ находятся в непрерывном блоке памяти, который распределяется и удаляется всего одним системным вызовом. Поэтому по сравнению с другими языками, у которых поля-объекты технически являются ссылками на отдельно выделенные в куче объекты, у C++ есть врождённое преимущество в эффективности, которое только безграмотный программист не учитывает, используя new-delete для объектов, которые можно было бы создавать другим способом (кстати, этим катастрофически грешат программисты, перешедшие на C++ с Delphi или Java: они все локальные переменные и поля-объекты строят через new, просто потому, что они так привыкли). Чего мне не хватает в C++Чего мне сильно не хватает в C++. Точнее, чего наболело за последние дни, при копании большого чужого кода. Это интересно. Из доклада "Кто пишет Линукс"Большинство людей очень плохо себе представляет объёмы труда, вложенные в программное обеспечение, особенно такое, как операционная система. Также не все в курсе, кто же делает так называемое открытое ПО - добровольцы, любители? В создании каждого выпуска ядра принимают участие около 1 тыс. разработчиков из более чем 200 корпораций, что делает Linux наиболее распределенным проектом разработки программного обеспечения в мире. Список компаний, разработчики которых принимают участие в процессе создания ядра Linux, возглавляют Red Hat, Google, Novell, Intel и IBM. С апреля 2008 года в ядро добавлено 2,7 млн. строк кода, т.е. каждый день, в среднем, добавлялось 10923 строки, это наиболее быстро изменяющийся публичный программный проект. При этом каждый день удаляются 5547 строк, увеличивая, тем самым, качество и релевантность кода ядра.Отчёт на английском тут: RTF to HTML converter for newer C++ compilers (GCC and Microsoft Visual Studio 2005)The project has been updated for current version of GCC / *nix (executable), MinGW (exe and dll) and Visual Studio 2005 (dll). Archives
|