Да, мой стиль работы сильно отличается от вашего, это не значит, что у меня бардак и какофония :)
два браузера с 35 вкладками (Вы же их постоянно все смотрите, не так ли? Закладки ведь дураки придумали, лучше открытую вкладку держать)
Да, закладками я перестал пользоваться много лет назад, когда их количество перевалило за 10k. Я просто не возвращался к ним никогда, так уж мой мозг устроен.
А в процессе исследования новой темы у меня и 100-200 вкладок бывает, из которых какое-то количество останется "дочитать завтра" или переедет на iPad, чтобы дочитать за ужином/перед сном.
какофония от одновременно работающих YT + Twitch (Или вы их не смотрите одновременно? А если не смотрите — зачем указываете?)
Одновременно, конечно, не более одного проигрывается :) Но висящие в фоне набирают кэш и занимают оперативку, поэтому логично было их упомянуть.
3 параллельно запущенных IDE с разными проектами (И вы их все 3 параллельно разрабатываете?
Как уже сказал выше — я перестал закрывать приложения, когда ими не пользуюсь. Висит себе на отдельном рабочем столе, CPU не ест, оперативки полно — зачем закрывать-открывать попусту.
UPD: Выглядит это примерно вот так, если собрать все столы на один монитор.
Объективное сравние, тесты, видео работы… зачем нам это, мы просто обзовем это все истеричным хайпом с ютуба и отбросим. Объективность уровня «фанат эпл». Поговорку про глаза и мочеиспускание приводить не буду, но вы поняли. Если что то и «хайпует» то это вот эта статья с ее пафосом и кричащим заголовком.
Объективными сравнениями завален весь интернет, но вы выбрали самый трешовый источник информации — русскоязычный ютюб. Вылезайте из пузыря.
Я уже понял что объективной оценки производительности от вас ждать не стоит, но вы мне расскажите как вы столько всего ужали в свои 6-7Гб оперативы и что бы «НИЛАГАЕТ!!11». С 4Гб просто интерент серфить больновато уже, а тут столько работы.
У меня 16 Гб модель, и я не могу представить, чем забить всю память сейчас. Вот так выглядит Safari с 25 вкладками, Firefox с 10 видео (youtube + twitch), XCode с небольшим iOS-проектом и запущенным приложением с локальным дебагером, IDEA с немаленьким Rust-проектом, VSCode с другим rust-проектом, торрент-клиент, мессенджеры, почта, и ещё десяток небольших приложений, которые не в топе памяти. Обычно я работаю с одним проектом одновременно, но закрывать приложения я перестал, т.к. это не влияет на работу всего остального.
А использование shared_ptr влияет на все потоки, так как там тоже атомарные переменные.
Атомарный там только счётчик ссылок, поэтому синхронизация происходит только при копировании/разрушении shared_ptr. Доступ к объекту по указателю не является атомарным (и дорогим), поэтому в многопоточной среде требует внешних средств синхронизации.
Другого десктопа у меня просто нет.
Без более-менее приличного процессора большинство игр не будет укладываться в стабильные 90 fps. Впрочем, у меня старенький i5-6600K, разогнанный до 4.5 ГГц, и он уже далеко не "топ".
Но надо понимать, с чем я сравниваю — M1 это энергоэффективный чип для ультрабуков, самый слабый из всего, что будет выпущено под Apple Silicon.
Вы можете сколько угодно смотреть истеричные ролики с YouTube, зарабатывающие на хайпе, и делать вид, что это реальное положение вещей.
У меня этот M1 стоит на столе и не лагает от слова совсем. Даже перекодирование видео на всех ядрах (не на GPU) можно заметить только заглянув в диспетчер задач. Я вообще не знаю, как его заставить тормозить. При первоначальной установке у меня происходила индексация диска, скачивание и распознавание фото-библиотеки, импорт музыкальной библиотеки, установка XCode и ещё десятка приложений, а я при этом браузил вэб в Firefox и Safari и не видел даже намёка на подлагивания.
А то, что он компилирует код в 2 раза быстрее моего VR-ready десктопа и рабочего макбука — это уже приятный бонус.
AMD 4800u имеет 8 полноценных ядер и SMT. Apple M1 — 4 производительных ядра и 4 слабеньких энергоэффективных (они дают примерно ту же производительность, что второй SMT поток на ядре). При этом 4800u выигрывает в лучшем случае (в разных ноутбуках производительность может отличаться) на 25% в Cinebench, при двухкратном реальном энергопотреблении (не путайте с TDP).
Проблема «специальных блоков» для выполнения конкретных задач — к ним нужно специальное ПО, привязанное именно к конкретным блокам. Через год выйдет процессор Apple M2+ с другим «декодером» или блоком DSP. И вот незадача: все ПО от M1 к нему уже не подходит.
Это не так работает. Разрабатывая приложение под MacOS вы не используете инструкции сопроцессоров напрямую, а вызываете разные фреймворки, которые под капотом сами выбирают, на чём исполнять команды: на CPU, GPU, Neural Engine, ISP… Для нового чипа с новыми ускорителями будет поддержка в фреймворке, и вам вообще ничего не надо в приложении менять.
Именно по этой причине Intel и AMD не идут по такому пути. У них, кстати, очень большой набор специальных команд на все случаи жизни. Это тоже с натяжкой можно назвать «специализированными блоками», однако никто не заставляет их использовать. Это просто расширение для основного набора команд и от их наличия или отсутствия меняется только производительность в узком классе задач.
А вот у Intel и AMD как раз есть эта проблема, из-за чего совместимость приложений регулярно ломается, если программист не предусмотрел фоллбеки с AVX, например (желательно тоже оптимизированные).
А бенчмарки для этих процессоров — вообще маркетинговая ерунда. Да, конвейерный DSP уделает обычный процессор в задачах, под которые заточен. Как и «декодер». Но в первую очередь, они требуют создания специальных условий для правильной работы — подготовленные данные, определенная последовательность действий и формат результата, во вторых — они имеют узкую специализацию. В задачах широкого профиля (а не задачах показывать кинчик очередному адепту яблочного культа) классический процессор будет быстрее и удобнее.
Вы ни в бенчмарках не разбираетесь, ни статью не прочитали внимательно.
На мой субъективный взгляд, писать корректный код на языке без исключений проще, чем с исключениями.
Появляется уверенность, что ты не забыл обработать ошибки. Из сторонней зависимости не прилетит исключение, о котором автор забыл, когда подключал другую зависимость. При обновлении библиотеки не появится новый тип исключения, о котором можно узнать только из чейнджлогов или падения в проде. В целом, проще рассуждать о всех потоках исполнения программы, а не только о "happy path".
Первый пример делает преобразование буфера, в котором уже лежит корректный utf8 в utf8-строку. Упасть оно может только если код чуть выше неправильно работает, и его надо срочно чинить.
Второй пример явно роняет приложениесборку приложения, если пытаться использовать функциональность, которая ещё не реализована.
Третий пример роняет приложение, если неправильно задали конфигурацию подключения к базе собрали CLI без поддержки базы, к которой пытаемся подключиться.
Все эти примеры вполне логичные и обоснованные, и не подразумевают перехват этих проблем в реалтайме и какое-либо исправление.
Да, Intel имеет все права по лицензированию.
Но, во-первых, с Apple у них особые договорённости, и в M1 уже встроены не-Intel Thunderbolt контроллеры, и на них уже есть лицензия.
А во-вторых, в стандарте USB4 есть опциональная поддержка thunderbolt, которая не требует лицензии.
А Wintel миру не надо обеспечивать полный переход на ARM за 2 года. Это и преимущество и недостаток. ARM-совместимые компьютеры будут медленно пожирать долю x86, двигаясь от планшетов через ноутбуки разного класса к офисным компьютерам и далее.
К настоящему моменту самые популярные приложения для развлечений и лёгкой работы или уже портированы или прилично работают через эмуляцию. Время автономной работы у текущих WoA устройств тоже приличное. Не хватает только производительности, которую как раз в теории может обеспечить Qualcomm или в этом году, или потенциально через год — с ядрами nuvia.
Более мощные варианты будут для другого класса устройств. Если Qualcomm сможет сделать 90% производительности от M1 в примерно том же энергопотреблении — это уже будет очень серьёзным чипом для ультрабуков. И он, в отличие от процессоров Apple, будет доступен разным производителям.
Т.е. даже если порт существенно доработают (что произойдет далеко не сразу) и он попадет в апстрим (в чем я сомневаюсь), его ждет забвение, как и остальные закрытые архитектуры без поддержки производителя (примеров масса, часть из них как раз удаляют из апстрима).
В апстрим попадут рано или поздно попадут патчи или от Corellium или от marcan. И поддерживаться они будут, т.к. устройства популярные.
Банально лет через 7, когда apple перейдет на новые процессоры, у разработчиков может не оказаться под рукой железа для тестирования.
Для "новых процессоров" будет свой проект по портированию. Но как это относится к поддержке текущего железа?
И это даже без учета помех со стороны apple вроде судебных исков или железной блокировки нелицензируемых ОС (вполне в духе apple).
Apple таким никогда не занималась, а в данном случае наоборот упрощает разработку сторонних ОС (впрочем, не открывая спецификаций).
Сам порт по сути лишает макбук большинства его бонусов (экосистемы и гарантии), за которые его и покупают и которые входят в цену. В итоге пользователи получат среднюю по характеристикам, но очень дорогую и закрытую железку, вся поддержка которой держится на небольшом количестве контрибьютеров (и я не вижу причин, почему их число будет рости).
Покажите хотя бы отдалённый аналог Macbook Air M1 с пассивным охлаждением и сравнимой производительностью, тогда можно будет что-то говорить о "средних характеристиках" и цене.
При этом по другую сторону есть RISC V, который выглядит более перспективным как архитектура, полностью открытый, имеет компанию, которая его продвигает и поддерживает разработчиков (а не мешает им)
Единственное отличие RISC-V от ARM — в бесплатности лицензирования и расширения ISA. Микроархитектура процессоров так же будет оставаться закрытой. Для конечного потребителя вообще ничего не поменяется.
а процессоры стоят существенно дешевле, охватывают гораздо больше устройств (и областей применения этих устройств) и в перспективе могут стать гораздо более распространенным (если еще не стали).
Покажите, где можно взять хотя бы отладочную плату (про консьюмерские устройства вообще рано говорить) дешевле аналогочного ARM.
А RISC-V процессоров, сравнимых с M1, сейчас вообще не существует, ни в каком виде.
Да, мой стиль работы сильно отличается от вашего, это не значит, что у меня бардак и какофония :)
Да, закладками я перестал пользоваться много лет назад, когда их количество перевалило за 10k. Я просто не возвращался к ним никогда, так уж мой мозг устроен.
А в процессе исследования новой темы у меня и 100-200 вкладок бывает, из которых какое-то количество останется "дочитать завтра" или переедет на iPad, чтобы дочитать за ужином/перед сном.
Одновременно, конечно, не более одного проигрывается :) Но висящие в фоне набирают кэш и занимают оперативку, поэтому логично было их упомянуть.
Как уже сказал выше — я перестал закрывать приложения, когда ими не пользуюсь. Висит себе на отдельном рабочем столе, CPU не ест, оперативки полно — зачем закрывать-открывать попусту.
UPD: Выглядит это примерно вот так, если собрать все столы на один монитор.
Я имел в виду синхронизацию кэшей при изменении атомарного счётчика. Мьютексов там нет.
Объективными сравнениями завален весь интернет, но вы выбрали самый трешовый источник информации — русскоязычный ютюб. Вылезайте из пузыря.
У меня 16 Гб модель, и я не могу представить, чем забить всю память сейчас. Вот так выглядит Safari с 25 вкладками, Firefox с 10 видео (youtube + twitch), XCode с небольшим iOS-проектом и запущенным приложением с локальным дебагером, IDEA с немаленьким Rust-проектом, VSCode с другим rust-проектом, торрент-клиент, мессенджеры, почта, и ещё десяток небольших приложений, которые не в топе памяти. Обычно я работаю с одним проектом одновременно, но закрывать приложения я перестал, т.к. это не влияет на работу всего остального.
Атомарный там только счётчик ссылок, поэтому синхронизация происходит только при копировании/разрушении shared_ptr. Доступ к объекту по указателю не является атомарным (и дорогим), поэтому в многопоточной среде требует внешних средств синхронизации.
del
Другого десктопа у меня просто нет.
Без более-менее приличного процессора большинство игр не будет укладываться в стабильные 90 fps. Впрочем, у меня старенький i5-6600K, разогнанный до 4.5 ГГц, и он уже далеко не "топ".
Но надо понимать, с чем я сравниваю — M1 это энергоэффективный чип для ультрабуков, самый слабый из всего, что будет выпущено под Apple Silicon.
Вы можете сколько угодно смотреть истеричные ролики с YouTube, зарабатывающие на хайпе, и делать вид, что это реальное положение вещей.
У меня этот M1 стоит на столе и не лагает от слова совсем. Даже перекодирование видео на всех ядрах (не на GPU) можно заметить только заглянув в диспетчер задач. Я вообще не знаю, как его заставить тормозить. При первоначальной установке у меня происходила индексация диска, скачивание и распознавание фото-библиотеки, импорт музыкальной библиотеки, установка XCode и ещё десятка приложений, а я при этом браузил вэб в Firefox и Safari и не видел даже намёка на подлагивания.
А то, что он компилирует код в 2 раза быстрее моего VR-ready десктопа и рабочего макбука — это уже приятный бонус.
Энергопотребление CPU M1 измерено очень точно, и в тесте Cinebench R23 составляет 15 Вт. Максимальное наблюдаемое потребление — 21 Вт при полной загрузке всех исполняемых блоков синтетической нагрузкой.
4800u при этом может потреблять до 35 Вт в Cinebench даже в профиле на "15 Вт TDP": https://next.lab501.ro/notebook/english-lenovo-ideapad-s540-13are-vs-13iml-amd-ryzen-7-4800u-vs-intel-core-i7-10710u/14
AMD 4800u имеет 8 полноценных ядер и SMT. Apple M1 — 4 производительных ядра и 4 слабеньких энергоэффективных (они дают примерно ту же производительность, что второй SMT поток на ядре). При этом 4800u выигрывает в лучшем случае (в разных ноутбуках производительность может отличаться) на 25% в Cinebench, при двухкратном реальном энергопотреблении (не путайте с TDP).
Это не так работает. Разрабатывая приложение под MacOS вы не используете инструкции сопроцессоров напрямую, а вызываете разные фреймворки, которые под капотом сами выбирают, на чём исполнять команды: на CPU, GPU, Neural Engine, ISP… Для нового чипа с новыми ускорителями будет поддержка в фреймворке, и вам вообще ничего не надо в приложении менять.
А вот у Intel и AMD как раз есть эта проблема, из-за чего совместимость приложений регулярно ломается, если программист не предусмотрел фоллбеки с AVX, например (желательно тоже оптимизированные).
Вы ни в бенчмарках не разбираетесь, ни статью не прочитали внимательно.
del
Спасибо.
В общем, это возможность привилегированного режима, которую в обычных приложениях не получится использовать.
А эта возможность где-то задокументирована или доступна в пользовательском коде? Или вы просто из существования rosetta 2 делаете вывод?
На мой субъективный взгляд, писать корректный код на языке без исключений проще, чем с исключениями.
Появляется уверенность, что ты не забыл обработать ошибки. Из сторонней зависимости не прилетит исключение, о котором автор забыл, когда подключал другую зависимость. При обновлении библиотеки не появится новый тип исключения, о котором можно узнать только из чейнджлогов или падения в проде. В целом, проще рассуждать о всех потоках исполнения программы, а не только о "happy path".
Первый пример делает преобразование буфера, в котором уже лежит корректный utf8 в utf8-строку. Упасть оно может только если код чуть выше неправильно работает, и его надо срочно чинить.
Второй пример явно роняет
приложениесборку приложения, если пытаться использовать функциональность, которая ещё не реализована.Третий пример роняет приложение, если
неправильно задали конфигурацию подключения к базесобрали CLI без поддержки базы, к которой пытаемся подключиться.Все эти примеры вполне логичные и обоснованные, и не подразумевают перехват этих проблем в реалтайме и какое-либо исправление.
Да, Intel имеет все права по лицензированию.
Но, во-первых, с Apple у них особые договорённости, и в M1 уже встроены не-Intel Thunderbolt контроллеры, и на них уже есть лицензия.
А во-вторых, в стандарте USB4 есть опциональная поддержка thunderbolt, которая не требует лицензии.
Размер овераллокации при авторесайзе слайса не определён. Именно в этом месте возникает полноценное UB.
А Wintel миру не надо обеспечивать полный переход на ARM за 2 года. Это и преимущество и недостаток. ARM-совместимые компьютеры будут медленно пожирать долю x86, двигаясь от планшетов через ноутбуки разного класса к офисным компьютерам и далее.
К настоящему моменту самые популярные приложения для развлечений и лёгкой работы или уже портированы или прилично работают через эмуляцию. Время автономной работы у текущих WoA устройств тоже приличное. Не хватает только производительности, которую как раз в теории может обеспечить Qualcomm или в этом году, или потенциально через год — с ядрами nuvia.
Более мощные варианты будут для другого класса устройств. Если Qualcomm сможет сделать 90% производительности от M1 в примерно том же энергопотреблении — это уже будет очень серьёзным чипом для ультрабуков. И он, в отличие от процессоров Apple, будет доступен разным производителям.
В апстрим попадут рано или поздно попадут патчи или от Corellium или от marcan. И поддерживаться они будут, т.к. устройства популярные.
Для "новых процессоров" будет свой проект по портированию. Но как это относится к поддержке текущего железа?
Apple таким никогда не занималась, а в данном случае наоборот упрощает разработку сторонних ОС (впрочем, не открывая спецификаций).
Покажите хотя бы отдалённый аналог Macbook Air M1 с пассивным охлаждением и сравнимой производительностью, тогда можно будет что-то говорить о "средних характеристиках" и цене.
Единственное отличие RISC-V от ARM — в бесплатности лицензирования и расширения ISA. Микроархитектура процессоров так же будет оставаться закрытой. Для конечного потребителя вообще ничего не поменяется.
Покажите, где можно взять хотя бы отладочную плату (про консьюмерские устройства вообще рано говорить) дешевле аналогочного ARM.
А RISC-V процессоров, сравнимых с M1, сейчас вообще не существует, ни в каком виде.