Все верно, но проблема слегка ортогональна sse, при загрузке int64 или int32 принципиально все то же самое - главное на другую страницу не обратиться, затем и выравнивание. То есть это для целого набора архитектур безопасно, не безопасные еще поискать надо.
Все эти __aeabi_fmul так же довольно сильно тормозят код. Их вставляет стандартный arm gcc, даже если указать neon, а вот в android ndk от них избавились (когда gcc еще там был). Насчет clang не помню, но вроде так же. Так что есть еще куда ускорять.
Как я понял autotools для конструирования configure.ac дает некие хелперы типа AC_SEARCH_LIBS. Но большую часть кода надо будет написать вручную. В результате оно работает у разработчика, но часто просто море мелких багов. Например из того что встречал - конфигур корректно находит либу через pkgconfig, но потом начинает тестировать фичи и делает просто -lлиба $LIBS, корректно подставить LIBS из pkgconfig забывают, да и самостоятельно писать -lлиба тут некорректно, надо было pkg-config либа --libs. В результате проверки провалились, но либа подцепилась, имеем молча недоработающее приложение. Meson же дает возможность не писать больше ручного кода -> меньше ошибок в разных конфигурациях.
Про select дополню что на винде он тоже не рекомендуется, если дескрипторов может быть много (хотя их и можно расширить на этапе компиляции). Помимо completion ports есть специальные WSAEnumNetworkEvents для этого.
На VNC у меня тоже не получалось. А xrdp\freerdp пробовали? У меня с ними даже лучше чем с последними десятками. По ссылке выше вроде тоже они используются.
Да, я вкурсе про mempy пешение. Но у меня на msvc 19 memcpy с /Ob2 не заменился. Добавление /Oi сделало лучше, memcpy превратилось в несколько инструкций, но не zero-cost.
Из lossless есть еще https://github.com/phoboslab/qoi А у png есть несколько реализаций, например fpng и rdopng, они по скорость\качество тоже будут отличаться.
Ну сами оптимизации у всех компилеров выглядят абсолютно идентично. Он опустил запись в память увидев что q больше нигде не используется, сразу в регистры записал чиселки для printf, вот только сами эти чиселки из недр оптимизатора получились разные для gcc и остальных.
-fsanitize=undefined мог бы отлавливать обращение к p потипу как -fsanitize=address (в этом случае кстати p и q становятся разными). Но увы, не настолько продвинутый.
А что за оптимизация? По ссылке я понял что дело в
The behavior is undefined in the following circumstances:
-The value of a pointer that refers storage allocated by a call to the free or realloc function is used (7.22.3 ).
То есть возможно просто отработал более очевидно для человека, а оптимизации не причем.
Еще забавно что -fsanitize=undefined этот случай не ловит.
Все верно, но проблема слегка ортогональна sse, при загрузке int64 или int32 принципиально все то же самое - главное на другую страницу не обратиться, затем и выравнивание. То есть это для целого набора архитектур безопасно, не безопасные еще поискать надо.
Точно такое же UB есть в Qt в qustrlen, и оно там просто подавлено для asan через
__attribute__((__no_sanitize_address__)).Все эти __aeabi_fmul так же довольно сильно тормозят код. Их вставляет стандартный arm gcc, даже если указать neon, а вот в android ndk от них избавились (когда gcc еще там был). Насчет clang не помню, но вроде так же. Так что есть еще куда ускорять.
Погодите, 150к loc это примерно 6мб? Это довольно немного. Для сравнения Qt - 1.2 гб
Есть кросс-платформенные аналоги WinMerge: KDiff3 и Meld.
А не думаете с многопроцессной системы на мультитредную перейти? Какие сдерживающие факторы?
Как я понял autotools для конструирования
configure.acдает некие хелперы типа AC_SEARCH_LIBS. Но большую часть кода надо будет написать вручную. В результате оно работает у разработчика, но часто просто море мелких багов. Например из того что встречал - конфигур корректно находит либу через pkgconfig, но потом начинает тестировать фичи и делает просто -lлиба $LIBS, корректно подставить LIBS из pkgconfig забывают, да и самостоятельно писать -lлиба тут некорректно, надо было pkg-config либа --libs.В результате проверки провалились, но либа подцепилась, имеем молча недоработающее приложение. Meson же дает возможность не писать больше ручного кода -> меньше ошибок в разных конфигурациях.
Про select дополню что на винде он тоже не рекомендуется, если дескрипторов может быть много (хотя их и можно расширить на этапе компиляции). Помимо completion ports есть специальные WSAEnumNetworkEvents для этого.
На VNC у меня тоже не получалось. А xrdp\freerdp пробовали? У меня с ними даже лучше чем с последними десятками. По ссылке выше вроде тоже они используются.
Да, я вкурсе про mempy пешение. Но у меня на msvc 19 memcpy с /Ob2 не заменился. Добавление /Oi сделало лучше, memcpy превратилось в несколько инструкций, но не zero-cost.
А у этой проблемы с union на С++ есть стандартное zero-cost решение?
Из lossless есть еще https://github.com/phoboslab/qoi
А у png есть несколько реализаций, например fpng и rdopng, они по скорость\качество тоже будут отличаться.
Не уверен, но возможно документировано это делает timeBeginPeriod(1).
А доступны ли у Тинькова не только котировки по акциям, но и фундаментальные даные типа p\e по апи?
Спасибо) Я правильно понял?:
Можно без самозанятого. Налог платится раз в год, а не раз в мес как выше про самозанятого.
Самое главное это заключить трудовой договор на 2х языках, чтобы было что прикладывать для налоговой. Можете скинуть типовой?
Есть ли какие-то лимиты у такого способа? Какие примерно суммы были?
А можете рассказать поподробнее как это сделать? Проходили ли валютный контроль, что в декларации писали итп.
Ну сами оптимизации у всех компилеров выглядят абсолютно идентично. Он опустил запись в память увидев что q больше нигде не используется, сразу в регистры записал чиселки для printf, вот только сами эти чиселки из недр оптимизатора получились разные для gcc и остальных.
-fsanitize=undefined мог бы отлавливать обращение к p потипу как -fsanitize=address (в этом случае кстати p и q становятся разными). Но увы, не настолько продвинутый.
А что за оптимизация? По ссылке я понял что дело в
То есть возможно просто отработал более очевидно для человека, а оптимизации не причем.
Еще забавно что -fsanitize=undefined этот случай не ловит.
Забавно, а вот gcc справился https://godbolt.org/z/4aE5z6cce
Единственный из всех получаетя.
Еще yasm есть :)