Saboteur, ну стоит отметить, что использование байта для данных в случае структуры с указателем на вектор указателей на элементы, к которым есть пути, займёт в 2 раза больше памяти, чем использование двух старших битов этого указателя для хранения данных, т.е. на amd64 только твоя структура данных займёт уже 160мб вместо 80, без учёта хранения векторов указателей.
Касательно "медленно работает", это неправда, выполнение нескольких инструкций подряд не будет являться узким местом программы, т.к. во-первых есть конвейер, а начиная с пентиума (93 год) ещё и не один, поэтому задержкой на вычисление конкретного бита можно пренебречь, а вот то, что у тебя ухудшится локальность твоей структуры данных это проблема, которая приведёт и к кэш-промахам и к промахам в TLB.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Касательно "медленно работает", это неправда, выполнение нескольких инструкций подряд не будет являться узким местом программы, т.к. во-первых есть конвейер, а начиная с пентиума (93 год) ещё и не один, поэтому задержкой на вычисление конкретного бита можно пренебречь, а вот то, что у тебя ухудшится локальность твоей структуры данных это проблема, которая приведёт и к кэш-промахам и к промахам в TLB.