The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Новая техника управления памятью позволяет ускорить программ..., opennews (?), 06-Апр-10, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Новая техника управления памятью позволяет ускорить программ..."  –4 +/
Сообщение от aZ (ok), 06-Апр-10, 13:49 
На какой ОС? На виндовс?)
Ответить | Правка | Наверх | Cообщить модератору

15. "Новая техника управления памятью позволяет ускорить программ..."  +/
Сообщение от Zenituremail (?), 06-Апр-10, 14:48 
Да на любой.
Ответить | Правка | Наверх | Cообщить модератору

31. "Новая техника управления памятью позволяет ускорить программ..."  +2 +/
Сообщение от XoRe (ok), 06-Апр-10, 18:11 
>На какой ОС? На виндовс?)

От них дождешься =)
Там если явно самому в своей программе накодить.

А на любой нормальной ОС, где можно подсовывать разные реализации malloc, возможно все перевести на ту реализацию, которая больше нравится.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

37. "Новая техника управления памятью позволяет ускорить программ..."  +/
Сообщение от Damon (??), 06-Апр-10, 19:11 
> Там если явно самому в своей программе накодить.

Да, как бы не сверх проблема. На C++ (в первом приближении!), пишете обертку и перегружаете глобальный оператор new. STL, по дефолту, использует глобальный оператор, но позволяет указать одним из параметров шаблона свой аллокатор (еще один путь)...
Ну а "чисто" на C, под вындос вряд ли сейчас кто пишет, впрочем, там можно по шаманить с опциями линкера, попытаться заставить его слинковать нужную либу и использовать именно нужную ф-цию. Когда-то давно читал, что new из библиотек VS6 пользует malloc (понятия не имею, как сейчас), т.ч. данный путь может оказаться универсальным.

Ну а шарписты, видимо, в пролете...

Ответить | Правка | Наверх | Cообщить модератору

40. "Новая техника управления памятью позволяет ускорить программ..."  +/
Сообщение от XoRe (ok), 06-Апр-10, 20:44 
>> Там если явно самому в своей программе накодить.
>
>Да, как бы не сверх проблема.

Согласен.
Свой код - своя вольница.

Но я про то, что в нормальных ОС можно задавать реализацию malloc для всех программ.
Я имею в виду для всех уже скомпиленных программ.
Ну кроме статически скомпиленных)

А попробуйте такой же трюк проделать в винде.
Я так понимаю, там и статическая компиляция практикуется куда чаще.

Ответить | Правка | Наверх | Cообщить модератору

45. "Новая техника управления памятью позволяет ускорить программ..."  +/
Сообщение от Damon (??), 06-Апр-10, 21:13 
>Но я про то, что в нормальных ОС можно задавать реализацию malloc
>для всех программ.
>Я имею в виду для всех уже скомпиленных программ.
>Ну кроме статически скомпиленных)

Ну, согласно закону Мерфи -- "Если высказывание может быть не понято, непременно найдется тот, кто его не поймет!" ((С) как-то так :-), ну а я человек маленький и законопослушный... :-)
Вобщем, извиняюсь, не так понял.

Ответить | Правка | Наверх | Cообщить модератору

57. "Новая техника управления памятью позволяет ускорить программ..."  +/
Сообщение от sluge (ok), 07-Апр-10, 13:59 
new то тут причем?
вызвал я скажем strdup-где тут new? все идет от malloc и собратьев, даже new!
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

60. "Новая техника управления памятью позволяет ускорить программ..."  +/
Сообщение от Damon (??), 07-Апр-10, 15:06 
>new то тут причем?
>вызвал я скажем strdup-где тут new?

Я же написал -- "в первом приближении", я же не предлагал, как нихрена не делая, поиметь кучу выгод, так только МММ в свое время делала, где она теперь, Вы (думаю) в курсе...
Вместо char*, пользуйте std::string, там используется new, или, вообще, свой аллокатор указать можно...

>все идет от malloc и собратьев,
>даже new!

"Анатомия C Run-Time, или Как сделать программу немного меньшего размера" ( http://www.rsdn.ru/article/cpp/crt.xml ):
"Обычно C/C++-программа опирается на мощную поддержку С Run-Time Library - библиотека времени исполнения языка C, далее - CRT; более редкое название - RTL (Run-Time Library). Многим функциям этой библиотеки для правильной работы требуется дополнительная инициализация (CRT startup code). В частности, для вывода текста на консоль с помощью функции printf необходимо, чтобы дескриптор стандартного вывода stdout был предварительно связан с устройством вывода операционной системы (например, стандартным выводом и консолью Win32). То же самое справедливо и для функций работы с кучей - таких, как malloc для C и оператора new для C++.
    ...
А сам код CRT находится в динамической библиотеке MSVCRT.DLL в системном каталоге Windows. Эта многопоточная библиотека используется и некоторыми бесплатными компиляторами C/C++ для Windows, например, MinGW."

Пишите свою dll, где делаете форвардинг всех ф-ций на оригинал, кроме malloc/free, ну и еще чего-нить, навроде realloc... При линковке линкуете со своей либой.
По мойму, не так уж и офигенно сложно...

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру