Недавно у меня появился новый друг.Его зовут _expand , и у нас было несколько приятных разговоров, и я даже встречался с ним несколько раз.Но когда я начал расспрашивать, никто никогда не слышал о моем расширении.Я стал подозрительным.Я позвонил нескольким совершенно не метафорическим друзьям в Microsoft и нескольким друзьям в других сферах бизнеса.Ничего такого.Никто никогда не использовал это.Я копался в различных поисковых системах и исходных деревьях.Ничего, кроме краткого упоминания здесь и там.Конечно, мне недостаточно информации о производительности и совместимости, чтобы ввести _expand в производственный код или, что более важно, в общие библиотеки.
Хуже того, нет эквивалентной функции, которую я могу найти ни в одной из библиотек gnu, так что все, что я взломаю с моим новым другом, не будет переносимым.Это позор, потому что это действительно захватывающая и захватывающая способность.Конечно, я мог бы углубиться в realloc и разобрать, как он функционирует, но проблема в том, что большая часть реализации сильно зависит от * nixes.Так что мне нужно будет указывать версию кода за версией, чтобы попытаться получить переносимый _expand.Тем не менее, кажется смешным, что ничего подобного не существует в glib или расширенных библиотеках gnu.
- Есть ли подобная функция, о которой я должен знать для взлома linux? Чаще всего ответил
- Есть ли стандартный хук, на котором я мог бы создать аналогичную функцию? Ответил
- Кто-нибудь знает, какую производительность предлагает _expand?
- Как он взаимодействует с объектами, расположенными на LFH?
Чтобы прояснить свои интересы, я пытаюсь создать односвязный аккумулятор, который расширяется в попытке минимизировать фрагментациювыделяя многоэлементные блоки вдоль линий традиционной реализации deque.Ограничивая варианты использования для добавления и удаления элементов, я надеюсь оптимизировать время удаления для всей структуры, а также вставку и индексирование элементов.В результате «громкий сбой» _expand позволяет мне разумно продумать структуру о том, когда и может ли она изменить размер на месте, и что это означает о том, где она может хранить данные.