Вопрос по повышению производительности Pimpl. Помню, на одной из конференций @antoshkka показывал идею с конструированием объекта на aligned_storage_t в том же классе, где лежит Impl* Насколько такое решение позволило повысить производительность на практике?
На практике получаем -1 динамическую аллокацию и чуть большую локальность данных.
Если объекты создаются часто или используются в критической секции - может быть целесобразно
Вопрос по повышению производительности Pimpl. Помню, на одной из конференций @antoshkka показывал идею с конструированием объекта на aligned_storage_t в том же классе, где лежит Impl* Насколько такое решение позволило повысить производительность на практике?
Очень раздражает, если размер объекта разный в зависимости от платформы, операционки или компилятора. Приходится ифать и все равно могут всплыть неприятные сюрпризы
Очень раздражает, если размер объекта разный в зависимости от платформы, операционки или компилятора. Приходится ифать и все равно могут всплыть неприятные сюрпризы
Очень раздражает, если размер объекта разный в зависимости от платформы, операционки или компилятора. Приходится ифать и все равно могут всплыть неприятные сюрпризы
Вопрос по повышению производительности Pimpl. Помню, на одной из конференций @antoshkka показывал идею с конструированием объекта на aligned_storage_t в том же классе, где лежит Impl* Насколько такое решение позволило повысить производительность на практике?
а ничто так не затрудняет чтение, как непонимание, как вообще поток выполнения по этому коду ходит
Мне кажется тут как раз идея основная в том, что поток это так, ресурс, и не "поток ходит" а "выполняется задача", в некоторых точках (возможно) переезжая в другой поток.
Мне кажется тут как раз идея основная в том, что поток это так, ресурс, и не "поток ходит" а "выполняется задача", в некоторых точках (возможно) переезжая в другой поток.
Это хорошо, если гладко работает в соответствии с ментальной моделью, но я не верю, что прямо никогда не нужно будет такой код отлаживать и распутывать спагетти.
а ничто так не затрудняет чтение, как непонимание, как вообще поток выполнения по этому коду ходит
Это дело привычки всего лишь. Мне в своё время было трудно понимать код с boost.asio. Вот где настоящая лапша (прыжки туда сюда по коду). Но со временем приноровился.
Опять же, корутины такие есть в других языках (С#, питон), и люди их там спокойно юзают и не парятся.
Это хорошо, если гладко работает в соответствии с ментальной моделью, но я не верю, что прямо никогда не нужно будет такой код отлаживать и распутывать спагетти.
Весь прикол в том, что это спагетти не сложнее того, что есть сейчас. Ты щас либо пишешь спагетти руками, либо через сахар (и компилятор спагетти-код прячет за ключевыми словами).