Size: a a a

2020 November 18

MS

Mikola Summer Duck in pro.algorithms
Тем более сделай три массива. Это потом людям читать после тебя.
источник

MS

Mikola Summer Duck in pro.algorithms
Если код холодный то пиши его для людей. Код с тремя массивами я сразу пойму, а на этот код мне даже сейчас понадобилось время чтоб понять что ты хочешь сделать и зачем.
источник

АК

Александр Караев... in pro.algorithms
Mikola Summer Duck
Тем более сделай три массива. Это потом людям читать после тебя.
как раз решение на трёх массивах мне кажется намного более многословным и менее читабельным
источник

АК

Александр Караев... in pro.algorithms
хотя, возможно мы говорим про разное
источник

MS

Mikola Summer Duck in pro.algorithms
Александр Караев
как раз решение на трёх массивах мне кажется намного более многословным и менее читабельным
Код с массивами functions, to_add и to_remove?
источник

MS

Mikola Summer Duck in pro.algorithms
Которые явно мержатся в строго определённом одном месте?
источник

m

magras in pro.algorithms
Mikola Summer Duck
Тем более сделай три массива. Это потом людям читать после тебя.
По-моему решение с COW проще, понятнее и скорее всего быстрее.
источник

MS

Mikola Summer Duck in pro.algorithms
magras
По-моему решение с COW проще, понятнее и скорее всего быстрее.
Каким образом копирование массива целиком каждый раз при изменении быстрее?
источник

m

magras in pro.algorithms
Mikola Summer Duck
Каким образом копирование массива целиком каждый раз при изменении быстрее?
Изменения редкие.
источник

MS

Mikola Summer Duck in pro.algorithms
magras
Изменения редкие.
Тогда почему ты сказал „быстрее“?
источник

АК

Александр Караев... in pro.algorithms
Mikola Summer Duck
Которые явно мержатся в строго определённом одном месте?
мои предварительные наброски (на rw мьютексах) привели к каше из трёх мьютексов и трёх массивов
источник

MS

Mikola Summer Duck in pro.algorithms
А почему каше?
источник

MS

Mikola Summer Duck in pro.algorithms
По твоему коду нельзя понять какой массив когда и для чего используется?
источник

АК

Александр Караев... in pro.algorithms
Mikola Summer Duck
По твоему коду нельзя понять какой массив когда и для чего используется?
можно, но реализация выглядела стрёмно.
впрочем, я бросил её, не дописав до конца, и пошёл с вопросом в этот чат.
я попробую написать её ещё разок, заодно сравню с COW
источник

m

magras in pro.algorithms
Mikola Summer Duck
Тогда почему ты сказал „быстрее“?
Потому что весь код итерации сводится к получению копии атомарного шаред поинтера (да, я знаю что это нетривиальная операция) на вектор и итерации по нему.
источник

MS

Mikola Summer Duck in pro.algorithms
magras
Потому что весь код итерации сводится к получению копии атомарного шаред поинтера (да, я знаю что это нетривиальная операция) на вектор и итерации по нему.
Но он ведь и так к этому сводится, только без копии. Лочишь один массив и итерируешь. В конце модифицируешь согласно двум другим массивам. Всё.
источник

MS

Mikola Summer Duck in pro.algorithms
Если сильно нужно можно два массива to_add и to_remove объединить в один, и то даже это необязательно.
источник

АК

Александр Караев... in pro.algorithms
Mikola Summer Duck
Но он ведь и так к этому сводится, только без копии. Лочишь один массив и итерируешь. В конце модифицируешь согласно двум другим массивам. Всё.
тогда на каждую итерацию будет по 3 лока мьютекса, нет?
источник

MS

Mikola Summer Duck in pro.algorithms
Александр Караев
тогда на каждую итерацию будет по 3 лока мьютекса, нет?
Почему это важно?
источник

MS

Mikola Summer Duck in pro.algorithms
Оптимизировать нужно то что происходит много раз а не один раз.
источник