Да, только Алексей потом с Хабра и ушел (ЕМНИП из-за несогласия с политикой сайта) и вел сам себе блог на сайте. Но помимо этого он перформансом в OpenJDK долгое время и занимался: всё то, что под капотом.
А ссылку мне стоило подписать, что ничего там страшного и противоречащего нету. За это извиняюсь :)
"Programs should obtain the definition of errno by the inclusion of <errno.h>. The practice of defining errno in a program as extern int errno is obsolescent. "
System Interfaces and Headers, Issue 5: Volume 1. 1997
Не назвал бы быстреньким. В документацию по cpp посмотрел, говорится: многопоточные библиотеки следующие стандартам C11, C++11 должны сделать их thread-local. А это (вики) конец 2011 года. Неосведомлен, правда, что там было вне стандарта.
Но почему-то я не встречал никакого негатива насчёт throw. А ведь это точно такая же фигня, если даже не хуже.
Ну почему же? Я тут на днях почитывал дискуссии давно минувших лет, тогда были еще совершенно другие идеи по поводу того, куда и как должно развиваться структурное структурированное программирование.
А раз появились исключения, значит какую-то проблему ими пытались в свое время решить? Как "старый метод" решения проблемы в языках, где можно вернуть только одно значение (без оборачивания в struct/object): те самые C API. Где, если вместо handle или чего-то там вернулось null/-1, то посмотри на GetLastError() и т.п. И оказалось, что статическая errno на всю программу - не очень-то thread safe и так далее.
Функция имеет 3 режима работы? Добавим ей аргумент int mode и исключение, если mode > 2.
А чем это отличается от assert?
Или, судя по остальной части комментария, надо чтобы возможности неограниченной int переменной не было вовсе, а только Enum, для которого каждое состояние строго определено?
Такие и вопросы, что в приведенном случае это техническое требование против пользователя. Мне лишь один Bitlocker придет на ум, где это во благо пользователю. Допускаю еще ограничения в нишевых корпоративных системах документового оборота.
И что произойдет с установленной ОС, если в настройках UEFI переключить TPM 2.0 на 1.2?
Intel: отдал пальму первенства, уход из России и роспуск штата, видимо, до сих пор аукается оптимизацией драйверов дискретных видеокарт, что как бы не поставило крест на этом направлении. Уязвимости в микрокоде фиксятся не капитально/комплексно, а заплатками по месту.
Asus: средненький софт, никакое отношение к безопасности, дожирают в целях оптимизации свою репутацию, скотское гарантийное обслуживание
nVIDIA: при Висте была сама корнем проблемы, одни из самых частых вылетов драйверов. Качество драйвера для 5000-й серии субъективно (мнение сообщества) опустилось ниже текущих AMD.
Logitech: смотрел я на мышки. Они выпустили новый софт (G Hub если не путаю), так он так ужасно работает (проблема известная), что я для себя на них вообще крест поставил. Долгожитием мыши тоже не отличаются.
У Firefox есть и были разные ветки, которые можно установить параллельно. Nightly точно совершенно отдельно встает, про другие (Beta, ESR) не уверен. Вопрос, конечно, где найти настоящий Nightly для XP... если не форк сторонний ставить ;)
А я не хочу светить TPM 2.0, чтобы в будущем (которое по-видимому раньше или позже настанет) мне не запрещали пользоваться компьютером так, как я решу. Аналогично с opt-in поддержкой DRM в браузере (изначально предстает вебсайтам как недоступный).
Некоторые драйвера/приложения могли внедрять свои кнопки в старую Панель Управления.
ПС: И тут мне непонятно "новое" контексное меню проводника. Старое функционально оно заместить полностью не сможет. Но вместо пользовательской настройки старого они решили сделать новое. Слабое техническое решение.
И большинство пол зователей не раздражает переход от текстовых кнопок к кнопкам с не всегда понятными иконками
Одно большинство пользователей компьютерами пользоваться вообще не умеет, чтобы у них вырабатывалось мнение "мне нужно было именно так по причине <логичный резон>". А другое большинство пользователей никто не спрашивал. Есть еще группа тех, кто установил обновление (геймерочки) и что-то (по мелочи или нет) сломалось, но откатываться уже влом.
Прикол UX от Microsoft в том, что походу интернет-поиск отключается только реестром. Отключил. Более-менее нормально теперь работает, но всё равно нестабильно (в плане ожидаемого результата поиска).
Поиск через Пуск в KDE работает же на 9/10. Без принудительных зондирований о том, что пользователь искал локально.
"Если" и для неизвестного определения "нужно". Если оно действительно (хотя бы) управляется через энергосберегающий режим, то доволен был бы таким решением. Но у меня (пример) на Samsung S21 Ultra, обновленного до недавно выпущенного Android 15 + OneUI 7.0 оно работает так:
Энергосбережение: можно включить принудительное понижение с 120 до 60 Гц (и я сомневаюсь, что даже при очень низком заряде оно будет приложениям дальше урезать события/vsync)
в простое, в простом меню системных настроек, с включенным индикатором: частота скачет между "--" и "120". Промежуточного 60 нет, хотя я телефон вообще не трогаю.
Youtube как мегапопулярное приложение должно работать? Видео на 60 FPS, а экран застрял на 120. Хотя в настройках оно зовется "адаптивным" режимом. Видео 240p30, а экран дальше в 120. И?
Энергосберегающий режим без принудительного переключения на 60 Гц при 57% эффекта не имеет на этот "адаптивный" режим. Если включить понижение частоты синхронизации, то тупо включает 60 Гц.
Таким образом резюмирую, что само оно очень неоптимально работает. И если приложение может само по себе ограничить обновление экрана (в одной игрушке на Unity так и поставил настройку), то пускай оно себя и контролирует в подходящей ситуации.
Да, только Алексей потом с Хабра и ушел (ЕМНИП из-за несогласия с политикой сайта) и вел сам себе блог на сайте. Но помимо этого он перформансом в OpenJDK долгое время и занимался: всё то, что под капотом.
А ссылку мне стоило подписать, что ничего там страшного и противоречащего нету. За это извиняюсь :)
Если я правильно понял (опережу: да), то задепрекейтили только в пятом издании.
Еще высказывания Торвальдса по теме самого errno: http://yarchive.net/comp/linux/errno.html
Статья по теме Hotspot JVM: https://shipilev.net/blog/2014/exceptional-performance/
В ядре Linux они до сих пор как finally и используются: освободить ресурсы и на выход.
Не назвал бы быстреньким. В документацию по cpp посмотрел, говорится: многопоточные библиотеки следующие стандартам C11, C++11 должны сделать их thread-local. А это (вики) конец 2011 года. Неосведомлен, правда, что там было вне стандарта.
Ну почему же? Я тут на днях почитывал дискуссии давно минувших лет, тогда были еще совершенно другие идеи по поводу того, куда и как должно развиваться
структурноеструктурированное программирование.https://wiki.c2.com/?IsBreakStatementArchaic
https://wiki.c2.com/?StructuredProgramming
--> https://wiki.c2.com/?ExceptionalConditions
https://wiki.c2.com/?UseExceptionsInsteadOfErrorValues
https://wiki.c2.com/?DontCatchExceptions
https://wiki.c2.com/?MessyExceptionHierarchy
https://c2.com/cgi/wiki?AvoidExceptionsWheneverPossible
https://wiki.c2.com/?DontUseExceptionsForFlowControl
https://wiki.c2.com/?ExceptionsAndConstructors
А раз появились исключения, значит какую-то проблему ими пытались в свое время решить? Как "старый метод" решения проблемы в языках, где можно вернуть только одно значение (без оборачивания в struct/object): те самые C API. Где, если вместо handle или чего-то там вернулось null/-1, то посмотри на GetLastError() и т.п. И оказалось, что статическая errno на всю программу - не очень-то thread safe и так далее.
А чем это отличается от assert?
Или, судя по остальной части комментария, надо чтобы возможности неограниченной int переменной не было вовсе, а только Enum, для которого каждое состояние строго определено?
Такие и вопросы, что в приведенном случае это техническое требование против пользователя. Мне лишь один Bitlocker придет на ум, где это во благо пользователю. Допускаю еще ограничения в нишевых корпоративных системах документового оборота.
И что произойдет с установленной ОС, если в настройках UEFI переключить TPM 2.0 на 1.2?
Intel: отдал пальму первенства, уход из России и роспуск штата, видимо, до сих пор аукается оптимизацией драйверов дискретных видеокарт, что как бы не поставило крест на этом направлении. Уязвимости в микрокоде фиксятся не капитально/комплексно, а заплатками по месту.
Asus: средненький софт, никакое отношение к безопасности, дожирают в целях оптимизации свою репутацию, скотское гарантийное обслуживание
nVIDIA: при Висте была сама корнем проблемы, одни из самых частых вылетов драйверов. Качество драйвера для 5000-й серии субъективно (мнение сообщества) опустилось ниже текущих AMD.
Logitech: смотрел я на мышки. Они выпустили новый софт (G Hub если не путаю), так он так ужасно работает (проблема известная), что я для себя на них вообще крест поставил. Долгожитием мыши тоже не отличаются.
Так... вроде всех честно обгадил. :)
Не по умолчанию, а по формальным системным требованиям.
Даже у бабули перенесён. В ходе дискуссии выяснил, что намеренно и удобнее/так нравится.
Особо веселят разработчики Firefox: OSX + Chrome + Гугл-сервисы.
У Firefox есть и были разные ветки, которые можно установить параллельно. Nightly точно совершенно отдельно встает, про другие (Beta, ESR) не уверен. Вопрос, конечно, где найти настоящий Nightly для XP... если не форк сторонний ставить ;)
А я не хочу светить TPM 2.0, чтобы в будущем (которое по-видимому раньше или позже настанет) мне не запрещали пользоваться компьютером так, как я решу. Аналогично с opt-in поддержкой DRM в браузере (изначально предстает вебсайтам как недоступный).
К какой группе комментаторов вы меня отнесете?
Некоторые драйвера/приложения могли внедрять свои кнопки в старую Панель Управления.
ПС: И тут мне непонятно "новое" контексное меню проводника. Старое функционально оно заместить полностью не сможет. Но вместо пользовательской настройки старого они решили сделать новое. Слабое техническое решение.
Одно большинство пользователей компьютерами пользоваться вообще не умеет, чтобы у них вырабатывалось мнение "мне нужно было именно так по причине <логичный резон>". А другое большинство пользователей никто не спрашивал. Есть еще группа тех, кто установил обновление (геймерочки) и что-то (по мелочи или нет) сломалось, но откатываться уже влом.
Удивлю еще больше: в 7ке тоже есть настройка реестра, которая задерживает отображение контекстного меню на пару сотен миллисекунд. Можно уменьшить.
Прикол UX от Microsoft в том, что походу интернет-поиск отключается только реестром. Отключил. Более-менее нормально теперь работает, но всё равно нестабильно (в плане ожидаемого результата поиска).
Поиск через Пуск в KDE работает же на 9/10. Без принудительных зондирований о том, что пользователь искал локально.
"Если" и для неизвестного определения "нужно". Если оно действительно (хотя бы) управляется через энергосберегающий режим, то доволен был бы таким решением. Но у меня (пример) на Samsung S21 Ultra, обновленного до недавно выпущенного Android 15 + OneUI 7.0 оно работает так:
Энергосбережение: можно включить принудительное понижение с 120 до 60 Гц (и я сомневаюсь, что даже при очень низком заряде оно будет приложениям дальше урезать события/vsync)
в простое, в простом меню системных настроек, с включенным индикатором: частота скачет между "--" и "120". Промежуточного 60 нет, хотя я телефон вообще не трогаю.
Youtube как мегапопулярное приложение должно работать? Видео на 60 FPS, а экран застрял на 120. Хотя в настройках оно зовется "адаптивным" режимом. Видео 240p30, а экран дальше в 120. И?
Энергосберегающий режим без принудительного переключения на 60 Гц при 57% эффекта не имеет на этот "адаптивный" режим. Если включить понижение частоты синхронизации, то тупо включает 60 Гц.
Таким образом резюмирую, что само оно очень неоптимально работает. И если приложение может само по себе ограничить обновление экрана (в одной игрушке на Unity так и поставил настройку), то пускай оно себя и контролирует в подходящей ситуации.
Еженедельная подборка 20 смешных картинок от автора, с его (не автора, а составителя) подписями.