Если же все данные объединить в один INSERT, то задержка будет не больше 10 мс.
Кроме как сформировать текст запроса с 1000 инсертами и выполнить запрос одним разом, — не вижу способов.
Если вы что-то знаете об этом больше меня — не стесняйтесь, рассказывайте :)
Каждый инсерт — это отправка команды по сети и ожидание ответа.
В случае транзакций, это работает по другому: ответ будет получен только если произойдёт ошибка во время вставок, либо по окончании и подтверждении транзакции. Транзакция — или всё или ничего.
Просто начинаете транзакцию, делаете кучу инсертов, и заканчиваете транзакцию. Современные СУБД достаточно умны чтобы кешировать данные на запись и отправлять их крупными пачками.
Как такового кеширования нет. Создаётся новая версия строки в таблице, и после коммита (подтверждения записи) они либо появляются в таблице, либо так и исчезают (вроде бы ещё и прихватывая с собой авто-инкрементированные последовательности айдишников; врать не буду, но в теории: если отменить в конце транзакцию на 100 вставок, то следующая запись будет с id: OLD+100+1)
Оттого, что основная часть работы по закреплению данных производится на этапе коммита, то по скорости выходит выгоднее вставки/удаления/обновления в блоке транзакции: или 100 записей за раз распихать по БД + обновить индексы, или 100 раз по одной записи — время затрачиваемое на блокировку таблиц/столбцов/строк (в зависимости от реализации/стратегии блокировок) является узким местом.
У меня протокол поверх TCP, но нет, ничего такого не делаю.
Со всеми полями работаю в host ordering, так что нет необходимости держать
заголовок в двух представлениях(BE и LE) — сразу декодирую по приходу.
А так да, — ваше решение хорошо иллюстрирует пример безопасного кодинга со строгой типизацией.
На ютубе не закроют. Нужно или финансирование, или мультмэйкеров на добровольных началах. К сожалению(в данном конкретном случае) мультмэйкеры политикой не интересуются...
И мог бы многое здесь написать, но поступлю как тот,
который не дурак, ну тот кто лучше промолчит ;)
PS: нужен карикатурный мультфильм в стиле масяня, чтобы
в нём освещались (высмеивались) все идиотские стремления
(если они таковыми являются, в том числе вымышленные)
власть имущих, приспособить хай-тек технологии, к достижению своих
примитивных хотелок. — Глядишь и отпугнёт некоторых делать глупости...
Дело в том, что та самая пресловутая, и упоминаемая вами кучность (стадный инстинкт присущий большинству менее развитым индивидам, которые постоянно жрут то меньшинство которое несколько более развито относительно первых), есть предтеча индивидуализма (читай: они скоро станут такими же индивидуалистами). А то что некоторое меньшинство не может преодолеть трансформацию количество -> качество (ну не успевают они окопаться, как сразу же их жрёт то самое большинство), то это уже другая тема, и безусловно наводит на мысль, что оно (это самое меньшинство) таки не обладает в достаточной мере теми качествами, которые гарантировали бы ему (этому меньшинству) преодолеть переходный период.
Есть и другая сторона качественной трансформации: меньшинство захватывает власть, и не стремится создавать условия для пополнения своих рядов (не образовывает остальных), тем самым загоняя себя в ловушку (осадное положение). И когда их сожрут — дело лишь времени, но это произойдёт в любом случае. Но и у стратегии пополнения своих рядов есть свои ньюансы: если привлечь на свою сторону не достаточно образованных — болезнь внутри крепости. Если идея (курс развития) за которую топит меньшинство не достаточно разумна — другие образованные не подтянутся...
Всё усложняется количеством формирующихся меньшинств, и их культурными особенностями. Как эти проблемы решал тот или иной представитель, той или иной культуры будучи на самой вершине управленческих аппаратов — достаточно заглянуть в историю. Но одно могу сказать с уверенностью: итоги к которым они пришли, на прямую коррелируют с их умственными и/или моральными качествами.
UPD: про засланных казачков тему не стал раскрывать, так как она достаточно освещена (я про формирование информационного пространства и направление масс в нужном направлении) — читай: карму сливают чтобы заткнуть, но они не являются большинством, а только прикидываются им...
Время на генерацию хэша для значения ключа и вставки ноды (unordered structure storage — hash based), превышают, или даже равно времени вставки ноды для ordered structure storage.
В своё время, для минимизации времени на аллокации при работе с аудио данными в реальном времени, использовал очереди, и дёргал буферы оттуда:
queue<audio_buffer<float>> in_, out_, free_;
внутри audio_buffer всё тот же std::vector, и даже если стоял фильтр на выход с другим рэйтом, то change capacity происходил два раза: первый при создании аудио-буфера под размер входящих данных(если в очереди свободных не оказывалось ни одного), и второй (И ТО если на выходе имеем бОльший рэйт) уже непосредственно перед ресэмплингом.
И всё нормально работало (после обработки сигнал подавался на аудио выход): без лагов и тормозов, с ресэмплингом и наложением нескольких фильтров.
Если руки растут откуда надо, можно и на векторах запрогить не хуже bulk-data way storage, конечно будет некоторый оверхэд по RAM, но отпадает необходимость ручками выделять/освобождать/ресайзить.
PS: AVL-ки по сравнению с RBtree имеют худшую производительность на вставках/удалении элементов. Префиксные деревья для строковых ключей хороши.
Ребят, я вот что заметил: если эмоциональную составляющую игнорировать, то на лицо ФГМ у большинства сегодняшних законотворцев. А раз так, то они всегда будут "догоняющими".
Новые родятся да командиры
Это хорошо, это так и надо
Что бы ни сказали—не станем спорить
Что бы ни дарили—не станем верить
Как листовка—так и я
Что бы ни случилось—умоем руки
Что бы ни стряслось—помолчим на небо
Станем необъятными, как полати
Станем заповедными, как деревья
Как листовка—так и я
Эх, новые родятся да командиры
Это ничего, видно так и надо
Главное, что дождик унёс соринку
Главное, что ёжик всегда в тумане
Это не миф, боги спрятались от таких назойливых как вы ;) (вернее не спрятались, а не разговаривают с вами, без обид)
Вера — дело личное, каждого из нас.
И вы всё ещё будете считать, что я пишу какую-то ерунду?
Сэр вытрите пену со рта, и пожалуйста, перестаньте брызгать слюной на мой фрак :)
Я конечно читал о всяких там комитетах 300 и тому подобных тайных обществах, но настоятельно рекомендую: не принимайте всё это близко к своему сердцу, оно не железное ;)
Просто возьмите и постройте свою систему хотя бы в миниатюре (посёлок или деревня), покажите нам! Но чур делать своими руками, не прибегая к помощи других людей — их же нельзя эксплуатировать, а если и прибегните к их помощи — то оплатите их труд достойно! чтобы они работали не за "в следующей жизни будет вам счастье"
Вы взрослый эрудированный человек, но почему чтобы решить выражение, вы его не упрощаете ?
Забудьте на минуту всё что вы знали до сего момента: нет никаких сферических коней в вакууме (буржуи и капиталисты), никаких систем, которые не возможно взломать и сломать, а есть лишь люди с их недостатками, которые находятся в этих системах (да они эти люди кучкуются, да они мнят себя превыше других, да они формируются в социальный класс, но они не боги а обычные люди, у которых есть страх и они чувствуют боль).
Придём к соглашению: что в компетенции, и по долгу своего существования, чиновник и силовик(не суть какой величины: президент, муниципал, полицейский или рядовой солдат) — у них общая задача:
служить своему народу и приносить ему пользу и безопасность, не нарушая при этом их личных свобод !
Отсюда следует: все кто не способен работать на благо народа (или как вы говорите обслуживает интересы третьих лиц в виде баготеев чьи интересы чисто шкурные — бизнес-спортсмены короче), или делает это не эффективно (с точки зрения граждан которые и платят за весь этот банкет) — проф не пригодны! и не должны засиживаться в рабочем кресле, ибо есть другие, кто способен эту же работу сделать лучше и быстрее! — нужны механизмы для оттаскивания всяких ??????? от кормушки и недопущения их к ней (потому как они свою работу не работают, и вполне смогут попробовать себя в роли торговцев, или дворников) !
Как определить кто способен а кто нет: если перефразировать небезызвестную поговорку(не говори сколько ты зарабатываешь, покажи сколько ты заработал): Не говори что ты сделаешь, покажи что ты сделал!
А то что вы предлагаете обратно в феодализм удариться (без прав на частную собственность и без других ништяков которые стимулируют наши стремления) — это даже не смешно !
К чему это я: какую бы систему вы не пытались построить, если ~23% и более её участников дармоеды/проф не пригодные/коррупционеры — она обречена! (цифра взята на угад)
у нас ведь уже есть initializer_list (с оговоркой того что только по значению инициализация а не по именам, ну и как бэ -std=C++11)
я сам ещё в своих поделках не применял, но весчь оч полезная ;)
+ Дмитрий Волин, C++ программист
Ну prepared так prepared, сути дела это не меняет.
Ну эээ, я как бэ знаю что такое prepared statement.
Делайте так, как считаете нужным.
Кроме как сформировать текст запроса с 1000 инсертами и выполнить запрос одним разом, — не вижу способов.
Если вы что-то знаете об этом больше меня — не стесняйтесь, рассказывайте :)
В случае транзакций, это работает по другому: ответ будет получен только если произойдёт ошибка во время вставок, либо по окончании и подтверждении транзакции. Транзакция — или всё или ничего.
Как такового кеширования нет. Создаётся новая версия строки в таблице, и после коммита (подтверждения записи) они либо появляются в таблице, либо так и исчезают (вроде бы ещё и прихватывая с собой авто-инкрементированные последовательности айдишников; врать не буду, но в теории: если отменить в конце транзакцию на 100 вставок, то следующая запись будет с id: OLD+100+1)
Оттого, что основная часть работы по закреплению данных производится на этапе коммита, то по скорости выходит выгоднее вставки/удаления/обновления в блоке транзакции: или 100 записей за раз распихать по БД + обновить индексы, или 100 раз по одной записи — время затрачиваемое на блокировку таблиц/столбцов/строк (в зависимости от реализации/стратегии блокировок) является узким местом.
полностью согласен. без memcpy никуда...
У меня протокол поверх TCP, но нет, ничего такого не делаю.
Со всеми полями работаю в host ordering, так что нет необходимости держать
заголовок в двух представлениях(BE и LE) — сразу декодирую по приходу.
А так да, — ваше решение хорошо иллюстрирует пример безопасного кодинга со строгой типизацией.
На ютубе не закроют. Нужно или финансирование, или мультмэйкеров на добровольных началах. К сожалению(в данном конкретном случае) мультмэйкеры политикой не интересуются...
Ценю вашу способность иронизировать :)
И мог бы многое здесь написать, но поступлю как тот,
который не дурак, ну тот кто лучше промолчит ;)
PS: нужен карикатурный мультфильм в стиле масяня, чтобы
в нём освещались (высмеивались) все идиотские стремления
(если они таковыми являются, в том числе вымышленные)
власть имущих, приспособить хай-тек технологии, к достижению своих
примитивных хотелок. — Глядишь и отпугнёт некоторых делать глупости...
Страшно подумать: каким образом будет применяться этот ИИ в РФ...
Дело в том, что та самая пресловутая, и упоминаемая вами кучность (стадный инстинкт присущий большинству менее развитым индивидам, которые постоянно жрут то меньшинство которое несколько более развито относительно первых), есть предтеча индивидуализма (читай: они скоро станут такими же индивидуалистами). А то что некоторое меньшинство не может преодолеть трансформацию количество -> качество (ну не успевают они окопаться, как сразу же их жрёт то самое большинство), то это уже другая тема, и безусловно наводит на мысль, что оно (это самое меньшинство) таки не обладает в достаточной мере теми качествами, которые гарантировали бы ему (этому меньшинству) преодолеть переходный период.
Есть и другая сторона качественной трансформации: меньшинство захватывает власть, и не стремится создавать условия для пополнения своих рядов (не образовывает остальных), тем самым загоняя себя в ловушку (осадное положение). И когда их сожрут — дело лишь времени, но это произойдёт в любом случае. Но и у стратегии пополнения своих рядов есть свои ньюансы: если привлечь на свою сторону не достаточно образованных — болезнь внутри крепости. Если идея (курс развития) за которую топит меньшинство не достаточно разумна — другие образованные не подтянутся...
Всё усложняется количеством формирующихся меньшинств, и их культурными особенностями. Как эти проблемы решал тот или иной представитель, той или иной культуры будучи на самой вершине управленческих аппаратов — достаточно заглянуть в историю. Но одно могу сказать с уверенностью: итоги к которым они пришли, на прямую коррелируют с их умственными и/или моральными качествами.
UPD: про засланных казачков тему не стал раскрывать, так как она достаточно освещена (я про формирование информационного пространства и направление масс в нужном направлении) — читай: карму сливают чтобы заткнуть, но они не являются большинством, а только прикидываются им...
Время на генерацию хэша для значения ключа и вставки ноды (unordered structure storage — hash based), превышают, или даже равно времени вставки ноды для ordered structure storage.
UPD: Ну или это связано с коллизиями хэша...
В своё время, для минимизации времени на аллокации при работе с аудио данными в реальном времени, использовал очереди, и дёргал буферы оттуда:
внутри audio_buffer всё тот же std::vector, и даже если стоял фильтр на выход с другим рэйтом, то change capacity происходил два раза: первый при создании аудио-буфера под размер входящих данных(если в очереди свободных не оказывалось ни одного), и второй (И ТО если на выходе имеем бОльший рэйт) уже непосредственно перед ресэмплингом.
И всё нормально работало (после обработки сигнал подавался на аудио выход): без лагов и тормозов, с ресэмплингом и наложением нескольких фильтров.
Если руки растут откуда надо, можно и на векторах запрогить не хуже bulk-data way storage, конечно будет некоторый оверхэд по RAM, но отпадает необходимость ручками выделять/освобождать/ресайзить.
PS: AVL-ки по сравнению с RBtree имеют худшую производительность на вставках/удалении элементов. Префиксные деревья для строковых ключей хороши.
У вас этот код, что-то наподобие composed operations реализует?
PS: если бы не boost::asio, мне бы пришлось что-то такое же пилить :)
Ребят, я вот что заметил: если эмоциональную составляющую игнорировать, то на лицо ФГМ у большинства сегодняшних законотворцев. А раз так, то они всегда будут "догоняющими".
Егор Летов.
PS: всем хорошего настроения !
Это не миф, боги спрятались от таких назойливых как вы ;) (вернее не спрятались, а не разговаривают с вами, без обид)
Вера — дело личное, каждого из нас.
Сэр вытрите пену со рта, и пожалуйста, перестаньте брызгать слюной на мой фрак :)
Я конечно читал о всяких там комитетах 300 и тому подобных тайных обществах, но настоятельно рекомендую: не принимайте всё это близко к своему сердцу, оно не железное ;)
Просто возьмите и постройте свою систему хотя бы в миниатюре (посёлок или деревня), покажите нам! Но чур делать своими руками, не прибегая к помощи других людей — их же нельзя эксплуатировать, а если и прибегните к их помощи — то оплатите их труд достойно! чтобы они работали не за "в следующей жизни будет вам счастье"
Shpankov
Вы взрослый эрудированный человек, но почему чтобы решить выражение, вы его не упрощаете ?
Забудьте на минуту всё что вы знали до сего момента: нет никаких сферических коней в вакууме (буржуи и капиталисты), никаких систем, которые не возможно взломать и сломать, а есть лишь люди с их недостатками, которые находятся в этих системах (да они эти люди кучкуются, да они мнят себя превыше других, да они формируются в социальный класс, но они не боги а обычные люди, у которых есть страх и они чувствуют боль).
Придём к соглашению: что в компетенции, и по долгу своего существования, чиновник и силовик(не суть какой величины: президент, муниципал, полицейский или рядовой солдат) — у них общая задача:
служить своему народу и приносить ему пользу и безопасность, не нарушая при этом их личных свобод !
Отсюда следует: все кто не способен работать на благо народа (или как вы говорите обслуживает интересы третьих лиц в виде баготеев чьи интересы чисто шкурные — бизнес-спортсмены короче), или делает это не эффективно (с точки зрения граждан которые и платят за весь этот банкет) — проф не пригодны! и не должны засиживаться в рабочем кресле, ибо есть другие, кто способен эту же работу сделать лучше и быстрее! — нужны механизмы для оттаскивания всяких ??????? от кормушки и недопущения их к ней (потому как они свою работу не работают, и вполне смогут попробовать себя в роли торговцев, или дворников) !
Как определить кто способен а кто нет: если перефразировать небезызвестную поговорку(не говори сколько ты зарабатываешь, покажи сколько ты заработал): Не говори что ты сделаешь, покажи что ты сделал!
А то что вы предлагаете обратно в феодализм удариться (без прав на частную собственность и без других ништяков которые стимулируют наши стремления) — это даже не смешно !
К чему это я: какую бы систему вы не пытались построить, если ~23% и более её участников дармоеды/проф не пригодные/коррупционеры — она обречена! (цифра взята на угад)
у нас ведь уже есть initializer_list (с оговоркой того что только по значению инициализация а не по именам, ну и как бэ -std=C++11)
я сам ещё в своих поделках не применял, но весчь оч полезная ;)
в C99 есть инициализация полей структуры по их именам:
PS: чаще использую инициализацию по значению, хотя более читабельно по именам конечно же...