_Expand по сравнению с новым по сравнению с GNU

Недавно у меня появился новый друг. Его зовут _expand , и мы хорошо поговорили, и я даже несколько раз тусовался с ним. Но когда я начал расспрашивать, никто никогда не слышал о моем _expand. Я стал подозрительным. Я позвонил нескольким совершенно неметафорическим друзьям из Microsoft и нескольким друзьям из других компаний. Ничего такого. Никто никогда им не пользовался. Я искал различные поисковые системы и деревья исходных текстов. Ничего, кроме беглого упоминания здесь и там. Определенно недостаточно информации о производительности и совместимости для меня, чтобы ввести _expand в производственный код или, что более уместно, общие библиотеки.

Хуже того, я не могу найти эквивалентной функции ни в одной из библиотек GNU, поэтому все, что я взламываю с моим новым другом, не будет переносимым. Что жаль, потому что это действительно увлекательная и захватывающая способность. Конечно, я мог бы покопаться в realloc и разобрать, как он работает, но проблема в том, что большая часть реализации сильно варьируется в * nixes. Поэтому мне пришлось бы кодировать версию за версией, чтобы попытаться получить переносимый _expand. Тем не менее, кажется смешным, что ничего подобного не существует в glib или расширенных библиотеках GNU.

  1. Есть ли похожая функция, о которой я должен знать для взлома Linux? Большинство ответов
  2. Есть ли стандартный хук, на котором я мог бы построить подобную функцию? Отвечено
  3. Кто-нибудь знает, какую производительность предлагает _expand?
  4. Как он взаимодействует с объектами, размещенными на LFH?

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

8
задан Jake Kurzer 7 December 2010 в 01:30
поделиться