Login
программисткие курсы
649 просмотров
Перейти к просмотру всей ветки
in Antwort Murr 03.12.05 23:22
В ответ на:
Увы, в системах есть характеристика - время реакции системы...
Увы, в системах есть характеристика - время реакции системы...
Причем здесь время реакции системы?
В ответ на:
Хммм... с каких это пор абстрактность стала синнонимом неэффективности?
Хммм... с каких это пор абстрактность стала синнонимом неэффективности?
С тех пор, как "абстрактность" перестала быть синонимом "частности". В нашем частном случае возможна более эффективная реализация сортировки, чем предлагаемая слишком общими методами из STL. Они не могут учитывать специфику наших данных.
В ответ на:
те самые "критические по времени выполнения куски С++ с ассемблером" могут вообще исчезнуть как таковые, а остаток приемлемо решится штатными средствами С++/С#/Java & etc., бо, нет недостаточной эффективности языков, а есть - непонимание задачи и неумение применять имеющиеся средства.
те самые "критические по времени выполнения куски С++ с ассемблером" могут вообще исчезнуть как таковые, а остаток приемлемо решится штатными средствами С++/С#/Java & etc., бо, нет недостаточной эффективности языков, а есть - непонимание задачи и неумение применять имеющиеся средства.
Гол в свои ворота. Критические ко времени выполнения куски в нашем случае - обработка изображений и других собираемых данных, визуализация - соль проекта и выкинуть не получится. А настаивание на использовании ООП/ООА/C++ вопреки всем возникающим сопутствующим проблемам как раз и выявляет непонимание задачи и неумение применять имеющиеся средства. Java и C# некоторые тоже пытались протолкнуть, но быстро успокоились после пары провальных экспериментов.
В ответ на:
можно подумать, что new/delete автоматическти привязывающие vtable к области данных создают больше проблем, чем alloc/free с последующим ручным назначением так же в ручную сформированных эмуляторов той же vtable и всеми последующими глюками связанными с сопровождением...
можно подумать, что new/delete автоматическти привязывающие vtable к области данных создают больше проблем, чем alloc/free с последующим ручным назначением так же в ручную сформированных эмуляторов той же vtable и всеми последующими глюками связанными с сопровождением...
Причем здесь дискрипторы сегментов и vtable? Если необходимо динамически наращивать массив данных (нет возможности получить приемлемую верхнюю оценку), то применение пары new/delete приводит к резервированию нового блока памяти, переписыванию содержимого, освобождению старого блока. Адресное пространство процесса при этом фрагментируется. Например, если первоначально был зарезервирован блок памяти размером 1GB, затем понадобилось увеличить этот блок до 1.5GB и были использованы new/delete, то в системе будет 1GB свободного адресного пространства, за ним 1.5GB занятого и опять 1.5GB свободного. Последующая попытка увеличить размер зарезервированного блока до 2GB не пройдет, хотя физической памяти может быть достаточно (речь о 32битной системе). Данную проблему можно решить "уплотнением" памяти - блок должен быть сдвинут в начало памяти. Но new/delete здесь ничем не помогут. Помимо alloc/free есть еще и функция realloc, при использовании которой в описанной выше ситуации проблема фрагментации адресного пространства просто не возникает. Плюс не происходит ненужное переписывание данных как при использовании new/delete.
[оран]"Мы появляемся на свет для того, чтобы помочь друг другу пережить эту самую жизнь, в чем бы там ни был ее смысл" (К. Воннегут)[/оран]