Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Вниз

Handle s   Найти похожие ветки 

 
1987   (2009-11-11 11:30) [0]

каково максимально возможное количество десткрипторов можно создать в рамках приложения.


 
clickmaker ©   (2009-11-11 11:32) [1]

десткрипторов чего?


 
1987   (2009-11-11 11:38) [2]


> десткрипторов чего?


ну ,например, того же FileStream"а. P.S. попробывал тут создать 78 500 TFileStream"ов - в результате появилась ошибка - недостаточно квот и повисла вся винда, поэтому стало интересно.


 
Сергей М. ©   (2009-11-11 11:40) [3]


> попробывал тут создать 78 500 TFileStream"ов


Это что, спортивный интерес ? Испытание Винды на прочность-вшивость ?
каков практический смысл в таком бешеном количестве одновременно существующих объектов ?


 
1987   (2009-11-11 11:51) [4]

использую компонент для аккумуляции множества файлов в одном (в компоненте имеется возможность использовать транзакции). В рамках транзакции приходится открывать каждый из множетва файлов, для этого создаю и передаю FileStream. Удалять его сразу после передачи нельзя. Это можно делать только после подтверждения транзакции. Поэтому стало интересно.


 
Сергей М. ©   (2009-11-11 11:56) [5]


> Удалять его сразу после передачи нельзя


Кого "его"  ?


 
Дмитрий Белькевич   (2009-11-11 12:55) [6]


>  Поэтому стало интересно.


У разных операционок (имеется в виду windows"ы) разные ограничения на количество одновременно открытых файлов. Ограничения, насколько я помню, рамками приложения не ограничены.

Пока что смутно представляю ситуацию необходимости одновременного открытия 78 500 файлов.


> использую компонент для аккумуляции множества файлов в одном
> (в компоненте имеется возможность использовать транзакции).
>


Если компонент одновременно открывает такое количество файлов - то имеет смысл от него отказаться, он написан неверно. Какие бы там "транзакции" он не использовал. И, вообще, что значит "имеет возможность использовать"? Никаких транзакций в windows"ах нет (маловероятно, что речь про транзакции ntfs). Транзакции приложения "придумывают" себе сами.


 
Riply ©   (2009-11-11 13:24) [7]

>  Поэтому стало интересно.

Если исходить из структуры таблицы, то
максимальное кол-во Handle`ов процесса выражается примерно так:
(PAGE_SIZE div SizeOf(HANDLE_TABLE_ENTRY)) * (PAGE_SIZE div SizeOf(PHANDLE_TABLE_ENTRY)) * (PAGE_SIZE div SizeOf(PHANDLE_TABLE_ENTRY))
Т.е. что-то типа: 512 * 1024 * 1024.
(больше просто в таблицу не влезет :) )

P.S.
Для проверки структуры таблицы, созадавала 512 * 512 + 16 Handle`ов - никто и не пискнул :)


 
Игорь Шевченко ©   (2009-11-11 13:41) [8]

Это неправильный подход - исследовать макисмальное количество именно Handles - они нафиг никому не сдались.

Во-первых, каждый созданный объект занимает какое-то место в памяти, как в ядерной, так и в прикладной. Объем памяти и там и там ограничен, гораздо больше шансов получить ошибку из-за этого ограничения. Во-вторых, существуют квоты на использование ядерной памяти процессом.

В-третьих, что-то явно в консерватории неправильно.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
2-1257844185
defen
2009-11-10 12:09
2009.12.27
закрытие приложения


15-1256468342
_
2009-10-25 13:59
2009.12.27
3D графика в Turbo Pascal 7.0


1-1230592103
ivanoff
2008-12-30 02:08
2009.12.27
Форма MDIChild не разворачвается полностью


1-1230616083
Karburator
2008-12-30 08:48
2009.12.27
сложное заглавие таблицы


15-1256486186
berlios
2009-10-25 18:56
2009.12.27
Задачка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский