асинхронный memcpy в Linux?

CHAR поднимает меньше пространства памяти, чем VARCHAR, если все Ваши значения данных в том поле являются той же длиной. Теперь, возможно, в 2009 база данных на 800 ГБ является тем же, во всех отношениях, как 810 ГБ, если Вы преобразовали VARCHARs в СИМВОЛЫ, но для коротких строк (1 или 2 символа), CHAR является все еще промышленностью "лучшая практика", которую я сказал бы.

Теперь при рассмотрении большого разнообразия типов данных большинство баз данных обеспечивает даже для одних только целых чисел (бит, крошечный, международный, bigint), СУЩЕСТВУЮТ причины выбрать один по другому. Просто выбор bigint каждый раз на самом деле немного незнаком с целями и использованием поля. Если поле просто представляет возраст людей в годах, bigint является излишеством. Теперь это не обязательно "неправильно", но это не эффективно.

, Но интересный аргумент, и как базы данных улучшается со временем, это мог быть обсужденный CHAR по сравнению с VARCHAR, действительно становится менее релевантным.

7
задан SunnyShah 25 November 2009 в 16:11
поделиться

3 ответа

Насколько я знаю, ЦП не выполняет / не может выполнять DMA самому себе. Таким образом, вам нужно внешнее оборудование на шине, чтобы сделать это за вас.

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

Но все же, если вы хотите создать "клон" блока памяти без использования memcpy ( кстати, все еще плохая идея, потому что доступ к памяти DMA обычно медленнее, чем у процессора) вы можете отправить блок памяти на видеокарту и вернуть его в другой буфер. Возможно, вы даже сможете поместить блок в видеопамять (putbitmap ()?: )) и выполните аппаратное ускорение bitblt () для создания копии на лету.

Не могли бы вы поделиться своей настоящей целью, чтобы люди могли придумать более умные / лучшие уловки?

7
ответ дан 6 December 2019 в 23:07
поделиться

На многоядерном процессоре или даже на процессоре с гиперпоточностью вы можете получить то, что хотите, выполнив обычную (синхронную) memcpy в отдельной ветке. Я не говорю, что это хорошая идея, просто указываю на очевидное.

3
ответ дан 6 December 2019 в 23:07
поделиться

Вы можете сделать несколько постановок с mremap. Или вы можете взломать FFmpeg, чтобы использовать разные буферы для разных кадров.

1
ответ дан 6 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: