Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Опасаясь ошибок записи в память (из-за прямого доступа), решил создавать заполненные нулями кучи. Далее создается объект- менеджер кучи, который при обращении к нему выдает последовательно куски памяти для объектов с данными. Эти объекты с данными собственными средствами будут анализировать неизменность своих данных ( http://www.sql.ru/forum/actualthread.aspx?tid=993712&pg=-1). По мере уничтожения кучи ее менеджер анализирует пустое пространство на сохранение заполненности нулями. Таким образом удастся полностью избежать ошибок работы с памятью. Какие подводные камни не учел юный подован? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 15:46 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVПо мере уничтожения кучи ее менеджер анализирует пустое пространство на сохранение заполненности нулями. Таким образом удастся полностью избежать ошибок работы с памятью. А что объект (class/struct) не может отображаться в нули? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:14 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
maytonА что объект (class/struct) не может отображаться в нули? Можно, конечно, выдумывать редкие случаи. Можно придумать, что в кучи были взаимокомпенсирующие записи по недоступному месту. Но мне подобное кажется маловероятным. Условно говоря я не смогу отловить 1 ошибку из миллиона возможных. Приемлемая цена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:24 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Ну я вот люблю инициализировать нулями вектора и матрицы. Код: plaintext 1. 2. 3. 4. 5. Вполне себе приличный объект. И что? Он будет кандидат на чистку для твоего менеджера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:31 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
maytonНу я вот люблю инициализировать нулями вектора и матрицы. Код: plaintext 1. 2. 3. 4. 5. Вполне себе приличный объект. И что? Он будет кандидат на чистку для твоего менеджера? Никаких чисток менеджер производить не будет. Вот его задачи: 1. Первоначальное заполнение кучи нулями 2. Выдача кусков памяти под объекты во время работы 3. Проверка незаполненного пространства на "нулевость" перед удалением кучи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:06 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanV3. Проверка незаполненного пространства на "нулевость" перед удалением кучи.Задайтесь одним простым вопросом: Что должен делать ваш кульный диспетчер, обнаружив (не)обнулённые байты в удаляемом куске? P.S. Вопрос о производительности не задаётся из простого сострадания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:21 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovGermanV3. Проверка незаполненного пространства на "нулевость" перед удалением кучи.Задайтесь одним простым вопросом: Что должен делать ваш кульный диспетчер, обнаружив (не)обнулённые байты в удаляемом куске? P.S. Вопрос о производительности не задаётся из простого сострадания. Он должен мне просигнализировать об ошибке. И если такое будет, то я оберну все операции записи проверкой из этого менеджера (которая легко будет отключаться с помощью define). А что с производительностью? 1. При выделении памяти из кучи с помощью менеджера будет даже ускорение (поскольку он будет возвращать только указатели на свободное место) 2. При работе с данными- так же как и было 3. При удалении кучи- если выделение памяти было адекватным, то ничтожные накладные расходы (где-то в районе половины процента). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:43 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVА что с производительностью? ...Время на запись нулей и поиск не-нулей, значит, не учитываем ... Ну-ну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:48 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovGermanVА что с производительностью? ...Время на запись нулей и поиск не-нулей, значит, не учитываем ... Ну-ну. Вы похоже никогда не выделяли память в куче. Запись нулей происходит о-о-очень быстро. Кстати, если нет менеджера кучи, то это надо делать каждому объекту отдельно, так что при менеджере получается ускорение. А про поиск не нулей, я уже написал, что займет это не более половины процента от времени работы программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 18:05 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Менеджер кучи оказался не нужным :) Так как выделение памяти из кучи идет в объекте (я не выделяю ее просто так, а под что-то конкретное), то именно в деструкторе объекта пусть и происходит анализ "зануления" неиспользованного места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 19:23 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVМенеджер кучи оказался не нужным :) 3 часа обсуждения псу под хвост ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 19:41 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVТаким образом удастся полностью избежать ошибок работы с памятью. Ошибок работы с памятью в С/С++ нельзя избежать. Никак. GermanVЗапись нулей происходит о-о-очень быстро. Вы ж сами писали что std::vector медленнее массива. Вообще-то как раз из-за записи нулей в момент resize() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 23:47 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyGermanVЗапись нулей происходит о-о-очень быстро. Вы ж сами писали что std::vector медленнее массива. Вообще-то как раз из-за записи нулей в момент resize() Одно с другим никак не связано: зануление кучи происходит при выделении памяти из кучи с помощью API Win32 (надо указать флаг при выделении памяти из кучи), а вектор- это какая-то ерунда (даже не знаю как точно характеризовать этот некачественный код). Вообще STL держится только на том, что целый вагон теоретиков пишут книжки, в которых всю книгу советуют использовать этот STL. Не спорю, что иногда полезно и сам в некоторых местах использую, но очень мало и только в тех местах, где не критично (один/два вызова). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 00:32 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVа вектор- это какая-то ерунда (даже не знаю как точно характеризовать этот некачественный код). Ну так свой напишите под свои задачи. Вы ж этим фактически и занимаетесь. Только двигаясь не целенаправлено, а по синусоиде (то менеджер кучи, то вдруг прозрение о назначении конструкторов/деструкторов). А количество ошибок уменьшают грамотным покрытием тестами, анализаторами типа Valgrind, статическими анализаторами кода, которые находят в коде типичные завтыки программистов, ну и отсутствием спешки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 01:24 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVВообще STL держится только на том, что целый вагон теоретиков пишут книжки, в которых всю книгу советуют использовать этот STL. Не пользуйтесь stl,не читайте Майерса, пишите свои велики,менеджеры куч всякие.Смешно читать ерунду которую вы пишите,ваш менеджер куч будет лучше чем алокаторы в stl сто пудов, особенно при "при выделении памяти из кучи с помощью API Win32" к успеху идете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 10:21 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVОдно с другим никак не связано: зануление кучи происходит при выделении памяти из кучи с помощью API Win32 (надо указать флаг при выделении памяти из кучи), а вектор- это какая-то ерунда (даже не знаю как точно характеризовать этот некачественный код). Вы думаете Винда каким-то другим - волшебным - способом обнуляет память? Вы немного путаете. Некачественный код, это например код с ошибками работы с памятью, чей автор вместо того, чтобы исправить ошибки, городит подпорки. А в STL ничего такого нет, ни концептуально, ни в известных реализациях. То что некоторые не умеют его использовать или применяют не к месту, вообще не говорит о качестве кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 14:21 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
Edd.DragonGermanVа вектор- это какая-то ерунда (даже не знаю как точно характеризовать этот некачественный код). Ну так свой напишите под свои задачи. Вы ж этим фактически и занимаетесь. Только двигаясь не целенаправлено, а по синусоиде (то менеджер кучи, то вдруг прозрение о назначении конструкторов/деструкторов). А количество ошибок уменьшают грамотным покрытием тестами, анализаторами типа Valgrind, статическими анализаторами кода, которые находят в коде типичные завтыки программистов, ну и отсутствием спешки. И какой же контейнер проверяет память на "битость"? Зачем ерунду писать? И хватит про свои контейнеры писать. Модератор, прошу закрыть тему, поскольку тролли от STL опять активизировались. Ответ я получил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:28 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVИ какой же контейнер проверяет память на "битость"? Твоя задумка память на битость тоже не проверяет. Поэтому под ошибками работы с памятью я понимал твою работу, а не компа. Кто ж мог подумать о таких вот забавных фантазиях о решении железных проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:40 |
|
||
|
Реализация менеджера кучи
|
|||
|---|---|---|---|
|
#18+
GermanVпоскольку тролли Всегда проще назвать дураком, чем выяснить что к чему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38096325&tid=2020554]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 173ms |

| 0 / 0 |
