А я всегда добавлял pipe в poll и останавливал его с помощью записи в pipe. eventfd на сколько помню чисто linuxовая история, а мне надо чтобы и под mac работало. Хотя в последний раз меня попросили отдельно реализовывать поллер на epoll и kqueue, iocp. Последние два имеют возможность добавить пользовательское событие чтобы проснуться. А в epoll по старинке через pipe.
Как -то тоже нужно было сделать поиск по имени файла. Тупое решение влоб привело просто к тому, что мы ооооочень долго пробирались по файловой системе. Очевидно стало, что нужно иметь какую-то быструю индексацию. Начал смотреть как работают известные файловые менеджеры, dolphin, nemo, nautilus. У них у всех индексируется определенный набор директорий Downloads, Documents, и т.д. За индексацию отвечает отдельный сервис, который в фоне все это обновляет. В теории можно было тоже как-то использовать этот индекс, но решение нужно было кросплатформенное linux, mac, windows, а тут еще и на каждом DE linux свои решения. В итоге отложили на неопределенное время.
А есть инструкция как этот правильно применяется? Допустим собрали вы свой проект с описанными флагами для оптимизации включая --strip-all, с gcc на линукс с cmake. Где искать `/path/to/debug_symbols_file` ?
Я у себя столкнулся с такой особенностью виртаульных таблиц. У меня был код, который использовал базовый класс как интерфейс, но сами реализации не хранились в одном месте через указатель на этот базовый класс. Но сам базовый класс имел виртуальный деструктор, как советуют core гайды. Удаление этого деструктора, сэкономило мне около 10К в бинарнике. Утечек нет, потому что не используется владение через указатель на этот базовый класс и деструктор вызывается всегда сразу у потомка.
А как управлять внешними зависимостями? Единый репозиторий пакетов, где все лежит в стандартизированном виде, или поддержка различных инструментов, как клонирование напрямую с git или штуки на подобии conan и vcpkg. А в каком виде? Так же в коде типо `import "https://github.com/fmtlib/fmt#master"`?
Можно ли это реализовать в новом компиляторе c++, который будет одновременно поддерживать стандарт и расширять его необходимыми фичами для самособираемости кода? С учетом модулей, возможно даже без нестандартных pragma можно будет уже собирать код с дефолтными флагами.
В даже в настоящее время проект - это просто папки и набор файлов в них с описанием того что нужно с этим сделать, вместо указания того, что нужно сделать непосредственно с их содержимым.
Я не понимаю разницу? Или хочется чтобы, то как собирается приложение было сразу в исходном коде?
Извините за оффтоп и за критику, но не могу больше терпеть. Часто вижу ваши комментарии, пишите интересные вещи, вроде бы, и по делу, вроде бы. Но они часто заминусованные. Причина, как мне кажется, это ваш стиль написания. Каждый комментарий как пережеванная каша из слов. Нужно несколько раз прочитать и все равно нет гарантии понимания. И мне обидно, что из-за этого ваше мнение, кажется, остается не услышанным.
Мне кажется так однозначно говорить, что синтетика это синтетика, а полноценная демка будет работать по другому тоже не правильно. Если в синтетике работает быстрее, то нужно просто понять почему. Может полноценная демка, сама по себе будет описана не оптимально без учета неких особенностей.
Эффективность тоже можно получить за счёт того что не выделяется память под маленькие объекты и что указатель на значение лежит не в объекте, а рядом с указателем на vtable, что позволяет их грузить одновременно, а не по очереди
До конца тоже не понял. Для классического полиморфизма не важно как и где выделяется память же, главное ссылку на объект заиметь.
Я наверное плохо читал, у AnyAny есть бенчмарки? Особенно интересно учитывая, что автор этой статьи сделал опровержение и эффективности все таки не обнаружено.
В статье упоминаются сторонние библиотеки типа c-ares. А в каком случае использовать их вместо getaddrinf()? Мне в голову приходит только кросс платформенные приложения, чтобы не сильно разбираться, а что там резолвит в windows, и мобилках.
а как оно было раньше?
в boost ведь давно корутины есть.
И я вдруг понял, что этого всю жизнь не хватало.
Но еще жизнь надо будет подождать, пока я на 26 стандарт перейду.
а как? там какой-то особый механизм для этого есть? Или сторонняя утилита для проверки?
А можно ли понять, что случилась коллизия не поймав баг при отладке?
А я всегда добавлял pipe в poll и останавливал его с помощью записи в pipe.
eventfd на сколько помню чисто linuxовая история, а мне надо чтобы и под mac работало.
Хотя в последний раз меня попросили отдельно реализовывать поллер на epoll и kqueue, iocp. Последние два имеют возможность добавить пользовательское событие чтобы проснуться. А в epoll по старинке через pipe.
Этот коментарий ведь про кеш?
Как -то тоже нужно было сделать поиск по имени файла. Тупое решение влоб привело просто к тому, что мы ооооочень долго пробирались по файловой системе. Очевидно стало, что нужно иметь какую-то быструю индексацию.
Начал смотреть как работают известные файловые менеджеры, dolphin, nemo, nautilus. У них у всех индексируется определенный набор директорий Downloads, Documents, и т.д. За индексацию отвечает отдельный сервис, который в фоне все это обновляет.
В теории можно было тоже как-то использовать этот индекс, но решение нужно было кросплатформенное linux, mac, windows, а тут еще и на каждом DE linux свои решения. В итоге отложили на неопределенное время.
Так и живут люди с медленным поиском.
Именно так
Ну и как тут уже упоминали
Поменяется код придется руками исправлять, забудешь исправить - сам дурак. Это же c++.
А есть инструкция как этот правильно применяется? Допустим собрали вы свой проект с описанными флагами для оптимизации включая --strip-all, с gcc на линукс с cmake. Где искать `/path/to/debug_symbols_file` ?
Я у себя столкнулся с такой особенностью виртаульных таблиц.
У меня был код, который использовал базовый класс как интерфейс, но сами реализации не хранились в одном месте через указатель на этот базовый класс. Но сам базовый класс имел виртуальный деструктор, как советуют core гайды.
Удаление этого деструктора, сэкономило мне около 10К в бинарнике.
Утечек нет, потому что не используется владение через указатель на этот базовый класс и деструктор вызывается всегда сразу у потомка.
Ну нельзя же сам велосипед с таким двигателем. А велосипедист может хоть 10кВт выдавать если он такой супермен.
А есть опция использовать системно установленную библиотеку, и если ее нет, то свою, поставляемую?
А оно кроссплатформенное, на мак и виндовс эта схема будет так же работать?
Вчера только решил попробовать. Не было связи с сервером. Обидно.
А как управлять внешними зависимостями? Единый репозиторий пакетов, где все лежит в стандартизированном виде, или поддержка различных инструментов, как клонирование напрямую с git или штуки на подобии conan и vcpkg. А в каком виде? Так же в коде типо `import "https://github.com/fmtlib/fmt#master"`?
Можно ли это реализовать в новом компиляторе c++, который будет одновременно поддерживать стандарт и расширять его необходимыми фичами для самособираемости кода? С учетом модулей, возможно даже без нестандартных pragma можно будет уже собирать код с дефолтными флагами.
Я не понимаю разницу?
Или хочется чтобы, то как собирается приложение было сразу в исходном коде?
Извините за оффтоп и за критику, но не могу больше терпеть.
Часто вижу ваши комментарии, пишите интересные вещи, вроде бы, и по делу, вроде бы. Но они часто заминусованные. Причина, как мне кажется, это ваш стиль написания. Каждый комментарий как пережеванная каша из слов. Нужно несколько раз прочитать и все равно нет гарантии понимания.
И мне обидно, что из-за этого ваше мнение, кажется, остается не услышанным.
Мне кажется так однозначно говорить, что синтетика это синтетика, а полноценная демка будет работать по другому тоже не правильно.
Если в синтетике работает быстрее, то нужно просто понять почему. Может полноценная демка, сама по себе будет описана не оптимально без учета неких особенностей.
Я это утверждение не понял. AnyAny ведь внутри тоже будет использовать указатель?
на примере
self это ссылка (читай указатель).
До конца тоже не понял. Для классического полиморфизма не важно как и где выделяется память же, главное ссылку на объект заиметь.
Я наверное плохо читал, у AnyAny есть бенчмарки? Особенно интересно учитывая, что автор этой статьи сделал опровержение и эффективности все таки не обнаружено.
В статье упоминаются сторонние библиотеки типа
c-ares. А в каком случае использовать их вместоgetaddrinf()?Мне в голову приходит только кросс платформенные приложения, чтобы не сильно разбираться, а что там резолвит в windows, и мобилках.