My Notes

Category: Программирование

А нужен ли козе баян, а C++ - уборщик мусора?

Lex Kravetski пишет:

...в ряде случаев внешний по отношению к коду сборщик мусора имеет гораздо больше возможностей для эффективного освобождения памяти. Например, он может очищать память блоками, даже если она использовалась разными объектами. В С++ без хитрых хаков такое организовать невозможно. delete очищает только то, что для этого объекта выделил new (и то не всегда — ловкими кастами вполне можно обмануть delete). Чтобы освободить память сразу для множества указателей, надо переопределять new через сишные функции.

В C++ можно размещать объекты на стеке, в статическом сегменте и внутри друг друга (предки и поля физически находятся внутри блока памяти содержащего их объекта). Таким образом, затраты на распределение и очистку памяти большого количества объектов (в т.ч. локальных, т.е. наиболее часто конструируемых и разрушаемых) в "плюсах" равну нулю, что по определению уделывает любой сборщик мусора. Даже если речь идёт про кучу: вся иерархия и члены одного объекта в C++ находятся в непрерывном блоке памяти, который распределяется и удаляется всего одним системным вызовом. Поэтому по сравнению с другими языками, у которых поля-объекты технически являются ссылками на отдельно выделенные в куче объекты, у C++ есть врождённое преимущество в эффективности, которое только безграмотный программист не учитывает, используя new-delete для объектов, которые можно было бы создавать другим способом (кстати, этим катастрофически грешат программисты, перешедшие на C++ с Delphi или Java: они все локальные переменные и поля-объекты строят через new, просто потому, что они так привыкли).

·· [Read more · Читать дальше] ·· »»»

Чего мне не хватает в C++

Чего мне сильно не хватает в C++. Точнее, чего наболело за последние дни, при копании большого чужого кода.

·· [Read more · Читать дальше] ·· »»»

Это интересно. Из доклада "Кто пишет Линукс"

Большинство людей очень плохо себе представляет объёмы труда, вложенные в программное обеспечение, особенно такое, как операционная система. Также не все в курсе, кто же делает так называемое открытое ПО - добровольцы, любители?
http://www.linuxcenter.ru/news/2009/08/20/10133/

В создании каждого выпуска ядра принимают участие около 1 тыс. разработчиков из более чем 200 корпораций, что делает Linux наиболее распределенным проектом разработки программного обеспечения в мире. Список компаний, разработчики которых принимают участие в процессе создания ядра Linux, возглавляют Red Hat, Google, Novell, Intel и IBM. С апреля 2008 года в ядро добавлено 2,7 млн. строк кода, т.е. каждый день, в среднем, добавлялось 10923 строки, это наиболее быстро изменяющийся публичный программный проект. При этом каждый день удаляются 5547 строк, увеличивая, тем самым, качество и релевантность кода ядра.
Отчёт на английском тут: http://www.linuxfordevices.com/c/a/News/Linux-Foundation-Who-Writes-Linux/

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).
Source code is available for download via RTF to HTML Lite CVS.
Please note that the project is not actively maintained by me so any help fixing bugs and adding more features is welcome.

How to install Trolltech / Nokia Qt for Microsoft Visual Studio 2005 / 2008

Installing Qt for MSVC (tested under Visual Studio 2005):

·· [Read more · Читать дальше] ·· »»»

Archives

                                                                                                                                                                                                                                                                   


© Sergey A. Galin, 1998-2021 sageshome.net/blog/