Я не искал неприятностей. Не запускал процесс сборки Chrome тысячу раз за выходные, а только занимался самыми обычными задачами 21-го века — просто писал электронное письмо в 10:30 утра. И вдруг Gmail подвис. Я продолжал печатать несколько секунд, но на экране не появлялось никаких символов. Затем внезапно Gmail отвис — и я вернулся к своему очень важному письму. Но впоследствии всё повторилось, только на этот раз Gmail ещё дольше не отвечал запросы. Это странно

Трудно устоять перед возможностью провести хорошее расследование, но в данном случае вызов особенно силён. Ведь я в Google работаю над улучшением производительности Chrome для Windows. Обнаружить причину зависания — моя работа. И после множества фальстартов и тяжёлых усилий мне всё-таки удалось выяснить, как Chrome, Gmail, Windows и наш IT-отдел вместе помешали мне набрать электронное письмо. По ходу дела нашёлся способ сэкономить значительное количество памяти для некоторых веб-страниц в Chrome.

В расследовании оказалось так много нюансов, что я оставлю некоторые для другой статьи, а сейчас полностью объясню причины подвисаний.

Как обычно, у меня в фоне работает UIforETW и отслеживает циклические буферы, поэтому оставалось только ввести Ctrl+Win+R — и буферы примерно за последние тридцать секунд активности системы сохранились на диск. Я загрузил их в Windows Performance Analyzer (WPA), но не смог окончательно установить зависание.

Когда программа Windows перестаёт передавать сообщения, то выдаются события ETW с указанием, где именно это произошло, поэтому такие типы зависаний тривиально найти. Но, видимо, Chrome продолжал передавать сообщения. Я поискал момент, когда один из ключевых потоков Chrome либо вошёл в активный цикл, либо полностью простаивал, но ничего явного не нашёл. Были некоторые места, где Chrome преимущественно простаивал, но даже тогда все ключевые потоки продолжали трудиться, поэтому нельзя было быть уверенным, где произошло зависание — Chrome мог простаивать просто в отсутствие событий:



В UIforETW есть встроенный кейлоггер, который часто полезен при идентификации ключевых точек в трассировке. Тем не менее, по очевидным причинам безопасности он по умолчанию анонимизирует нажатия клавиш, расценивая каждое введённое число как “1”, а каждую букву как “A”. Это затрудняет поиск точного момента зависания, поэтому я изменил тип трассировки с «частной» на «полную» и ожидал зависания. Около 10:30 на следующее утро зависание повторилось. Я сохранил буферы трассировки и сохранил такую пометку в поле информации трассировки UIforETW:

Набирал «отложить для тех, у кого больше опыт работы с подводным плаванием» — и Gmail подвис в конце слова «тех», а затем возобновил работу в районе слова «опыт». Вкладка Gmail с PID 27368.

Это обычное обсуждение способов добраться до офиса, но важно, что теперь появился способ найти зависание в трассировке ETW. Я загружаю трассировку, смотрю на данные кейлогера в поле Generic Events (события выдаются самим UIforETW, а каждое представляет собой фиолетовый ромб на скриншоте внизу) — и сразу вижу, где произошло зависание, с которым явно коррелирует провал в использовании CPU:



Хорошо, но почему Chrome остановился? Вот некоторые намёки: на скриншотах не показано, что каждый раз при этом WmiPrvSE.exe полностью использует гиперпоток CPU. Но это не должно иметь значения. В моей машине 24 ядра/48 потоков, так что потребление одного гиперпотока означает, что система по-прежнему свободна на 98%.

Затем я приблизился к явно важному периоду, когда Chrome простаивал — и посмотрел, в частности, на процесс CrRendererMain в chrome.exe (27368), соответствующий вкладке Gmail.

Примечание: хочу сказать спасибо себе из 2015 года за просьбу Microsoft улучшить механизмы именования потоков, и спасибо Microsoft за реализацию всего предложенного — названия потоков в WPA просто великолепны!

Проблема прояснилась. В течение 2,81 секунды зависания этот поток запускался по расписанию 440 раз. Обычно запуска каждые 6 мс достаточно, чтобы сделать программу отзывчивой, но по какой-то причине этого не произошло. Я заметил, что каждый раз, когда он просыпался, то был на одном стеке. Если упростить:

chrome_child.dll (stack base)
KernelBase.dll!VirtualAlloc
ntoskrnl.exe!MiCommitVadCfgBits
ntoskrnl.exe!MiPopulateCfgBitMap
ntoskrnl.exe!ExAcquirePushLockExclusiveEx
ntoskrnl.exe!KeWaitForSingleObject (stack leaf)

Chrome вызывает VirtualAlloc, который пытается обновить некоторые “CfgBits” и должен получить блокировку. Сначала я предположил, что Chrome вызывал VirtualAlloc 440 раз, что кажется странным. Но реальность оказалась ещё более странной. Chrome вызвал VirtualAlloc однажды — и должен был получить блокировку. Chrome сигнализировал о доступности блокировки, но — 439 раз подряд — когда Chrome просыпался и пытался получить блокировку, она оказывалась недоступна. Блокировка получалась повторно через процесс, упомянутый выше.

Это потому что блокировки Windows по своей природе несправедливы — и если поток освобождает блокировку, а затем немедленно её запрашивает снова, то может получать её вечно. Голод. Подробнее об этом в следующий раз.

В каждом случае процессом, который сигнализирует Chrome захватить блокировку, был WmiPrvSE.ехе, отпускающий блокировку на этот стек:

ntoskrnl.exe!KiSystemServiceCopyEnd (stack base)
ntoskrnl.exe!NtQueryVirtualMemory
ntoskrnl.exe!MmQueryVirtualMemory
ntoskrnl.exe!MiUnlockAndDereferenceVad
ntoskrnl.exe!ExfTryToWakePushLock (stack leaf)

Некоторое время занял разбор в WMI (подробнее об этом в следующий раз), но в итоге я написал программу для воссоздания поведения WMI. У меня были данные выборки CPU, которые показали, на что тратит время WmiPrvSE.exe (в упрощённом виде с некоторыми правками):

WmiPerfClass.dll!EnumSelectCounterObjects (stack base)
WmiPerfClass.dll!ConvertCounterPath
pdh.dll!PdhiTranslateCounter
pdh.dll!GetSystemPerfData
KernelBase.dll!blah-blah-blah
advapi32.dll!blah-blah-blah
perfproc.dll!blah-blah-blah
perfproc.dll!GetProcessVaData
ntdll.dll!NtQueryVirtualMemory
ntoskrnl.exe!NtQueryVirtualMemory
ntoskrnl.exe!MmQueryVirtualMemory
ntoskrnl.exe!MiQueryAddressSpan
ntoskrnl.exe!MiQueryAddressState
ntoskrnl.exe!MiGetNextPageTable (stack leaf)

Воспроизвести медленное сканирование по данным выборки было довольно легко. Интересной частью стека вызовов выше оказался NtQueryVirtualMemory, который используется для сканирования памяти процесса и вызывается соответствующим образом именованным GetProcessVaData, где Va, вероятно, обозначает виртуальный адрес. Моя программа VirtualScan просто вызывала NtQueryVirtualMemory в очевидном цикле для сканирования адресного пространства указанного процесса, код работал очень долго для сканирования процесса Gmail (10-15 секунд) — и приводил к зависанию. Но почему?

Преимущество собственноручно написанного цикла сканирования в том, что можно генерировать статистику. NtQueryVirtualMemory возвращает данные для каждого смежного диапазона адресного пространства с соответствующими атрибутами. Такими могут быть «всё зарезервировано», «всё зафиксировано с определенными настройками защиты» и т.д. В процессе Gmail около 26 000 этих блоков, но я нашёл другой процесс (как оказалось, это WPA) с 16 000 блоками памяти, который сканировался очень быстро.

В какой-то момент я посмотрел на процесс Gmail с помощью vmmap и заметил, что процесс Gmail занимает немало памяти (361 836 КБ) и много отдельных блоков (49 719), поступающих из единого источника зарезервированной общей памяти — источника размером 2 147 483 648 КБ, то есть 2 ТБ. Что?



Я знал, что резервирование 2 ТБ используется для Control Flow Guard (CFG), и вспомнил, что “CFG” действительно появлялся в стеках вызовов, где ожидал процесс Gmail в Chrome — на стеке присутствовал MiCommitVadCfgBits. Может, большое количество блоков в регионе CFG и было проблемой!

Control Flow Guard (CFG) используется для защиты от эксплойтов. Два терабайта зарезервированы как битовый массив, который указывает на валидные косвенные переходы в 128-терабайтном адресном пространстве пользовательского режима. Поэтому я изменил свой сканер виртуальной памяти для подсчёта, сколько блоков находится в регионе CFG (просто поиск резервации 2 ТБ), а сколько блоков помечены как исполняемые. Поскольку память CFG используется для описания исполняемой памяти, то я ожидал увидеть в процессе один блок памяти CFG для каждого блока исполняемой памяти. Вместо этого я увидел 98 блоков исполняемой памяти и 24 866 блоков фиксированной CFG-памяти. Существенное расхождение:

      Scan time,  Committed, page tables, committed blocks
Total: 41.763s, 1457.7 MiB,    67.7 MiB,  32112, 98 code blocks
CFG: 41.759s,  353.3 MiB,    59.2 MiB,  24866

vmmap показывает резервирование и выделенную память как блоки, а мой инструмент сканирования считает только выделенные блоки — вот почему vmmap показывает 49 684 блоков, а мой инструмент 24 866

Задним умом это кажется очевидным, но что если битовый массив CFG никогда не очищается? Что если память выделяется в битовом массиве CFG при выделении исполняемой памяти, но не освобождается при освобождении исполняемой памяти? Тогда такое поведение понятно.

Воспроизведение от начала до конца


Следующий шаг — написание программы VAllocStress, которая выделяет и освобождает тысячи блоков исполняемой памяти по случайным адресам. Для этого исполняемого файла должен работать 64-битный режим CFG, и возникли некоторые затруднения, потому что я действительно не знал, что я пытаюсь сделать, но всё заработало. После выделения и освобождения этого количества блоков исполняемой памяти программа должна сидеть в цикле, откуда она изредка пытается выделить/освободить больше исполняемой памяти, и следит, когда этот процесс замедляется. Вот базовый алгоритм для VAllocStress:

  1. Многократный цикл:
    • Выделить исполняемую память с помощью VirtualAlloc по случайному адресу.
    • Освободить память.
  2. Затем бесконечный цикл:
    • Спящий режим на 500 мс (не хочу свински захватывать процессор).
    • Выделить немного исполняемой памяти с VirtualAlloc по заданному адресу.
    • Вывод сообщения, если вызов VirtualAlloc занимает более ~500 мс
    • Освободить память.

Вот и всё. Очень просто. И было так приятно, когда это сработало. Я запустил программу, а потом поручил VirtualScan просканировать процесс VAllocStress. Быстро выяснилось, что блок CFG ужасно фрагментирован, и сканирование занимает очень много времени. И моя программа VAllocStress зависала на время сканирования!

На этом этапе я смоделировал фрагментацию CFG, длительное время сканирования и зависание. Ура!

Первопричина


Оказывается, в JavaScript-движке v8 задействованы объекты CodeRange для управления генератором кода, и каждый объект CodeRange ограничен диапазоном адресов 128 МБ. Казалось бы, это достаточно небольшой объём, чтобы избежать безудержного распределения CFG, которые мы наблюдаем.

Но что, если у вас несколько объектов CodeRange, и они распределяются по случайным адресам, а затем освобождаются? Я настроил конструктор CodeRange, оставил работать Gmail — и нашёл виновника. Каждые пару минут создавался (и уничтожался) новый объект CodeRange. В отладчике легко видеть, как WorkerThread::Start выделяет эти объекты. И тут головоломка сложилась:

  1. Gmail использует сервис-воркеров, вероятно, для реализации автономного режима.
  2. Они появляются и исчезают каждые несколько минут, потому что так ведут себя сервис-воркеры.
  3. Каждый поток воркера получает временный объект CodeRange, который выделяет некоторые исполняемые страницы для JITted-кода JavaScript из случайного расположения в 47-битном адресном пространстве процесса.
  4. При выделении новых кодовых страниц производятся записи в резервации памяти CFG на 2 ТБ.
  5. Распределения CFG никогда не освобождаются.
  6. NtQueryVirtualMemory мучительно медленно сканирует память CFG (около 1 мс на блок) по причинам, которые я не понимаю.

Медленное сканирование памяти CFG фактически исправлено в Windows 10 RS4 (обновление от апреля 2018 года), что заставило меня ненадолго задуматься, был ли смысл во всём этом расследовании. Оказывается, был.

Память


Резервирование CFG начинается с простой резервации адресов — никакая память фактически не фиксируется. Но по мере выделения исполняемых страниц часть резервации CFG превращается в выделенную память, используя реальные страницы памяти. И эти страницы никогда не освобождаются. Если вы продолжаете выделять и освобождать случайно расположенные блоки исполняемой памяти, то область CFG может стать бесконечно большой! Ну, это не совсем правда. Блок памяти CFG ограничен кэшем определённого размера. Но это мало утешает, если ограничение составляет 2 ТБ на процесс!

Худшее, что я видел до сих пор — это когда моя вкладка Gmail работала в течение восьми дней и накопила 353,3 МБ памяти CFG и 59,2 МБ таблиц страниц для отображения этой памяти, что в общей сложности составляет около 400 МБ. По какой-то причине у большинства людей нет таких проблем или они гораздо мягче, чем у меня.

Решение


Команда v8 (движок JavaScript в Chrome) изменила код таким образом, что он повторно использует адреса для объектов CodeRange, что довольно хорошо устраняет эту проблему. Microsoft уже исправила проблемы с производительностью сканирования памяти CFG. Может, когда-нибудь Microsoft будет освобождать регионы CFG по мере освобождения исполняемой памяти, по крайней мере, в простых случаях, когда освобождаются большие диапазоны адресов. И баг vmmap тоже в обработке.

Большинство пользователей и моих коллег никогда не замечали этой проблемы. Я заметил её только потому что:

  • У меня был включен автономный режим Gmail.
  • Я работал на старой версии Windows 10.
  • Наш IT-отдел регулярно проводит WMI-сканирование наших компьютеров.
  • Я был внимателен.
  • Мне повезло.

Кажется очень маловероятным, что, как один из самых квалифицированных людей для диагностирования этой ошибки, я первым её заметил. Если убрать любой из вышеперечисленных факторов, то ни зависания, ни связанную с этим потерю памяти, возможно, никогда бы не заметили.

Кстати, зависания происходили именно в 10:30 утра только потому, что именно в этом время наш IT-отдел запускал соответствующее сканирование. Если хотите запустить сканирование вручную, можете зайти в Control Panel > Configuration Manager > Actions, выбрать Hardware Inventory Cycle и нажать Run Now.



Исходный код


Если желаете поиграться, то исходный код VAllocStress и VirtualScan лежит на Github.

Нюансы


В этом расследовании много нюансов. Некоторые из них важные (таблицы страниц), некоторые поучительные (блокировки), а некоторые оказались пустой тратой времени (детали WMI). В следующей статье я расскажу подробнее о них и об ошибке vmmap. Если хотите больше кровавых подробностей — некоторые из которых оказались неправильными или неактуальными — можете следить за расследованием на crbug.com/870054.

Комментарии (151)


  1. Hardcoin
    19.08.2018 15:41
    +9

    Никогда бы не заметили? Это он зря — зависания на пару секунд без видимых причин знакомы каждому. А вот само расследование интересное.


    1. kmu1990
      19.08.2018 16:14
      +2

      Ни каждое зависание на пару секунд происходит по одним и тем же причинам.


      1. Hardcoin
        19.08.2018 16:18
        +1

        Разумеется. Есть шанс, что именно такое зависание никогда и не происходило ни у кого. Но если я верно понял схему, оно не самое редкое.


  1. nckma
    19.08.2018 16:48
    +26

    Интересно, что бы произошло с хромом, если бы эти люди использовали для разработки 4х ядерные компьютеры вместо 24х ядерных?


    1. webviktor
      19.08.2018 17:29
      +3

      Хром бы тогда прекрасно работал на 2х-4х ядерных процах и не выжирал бы все ресурсы.


      1. mickvav
        20.08.2018 15:05

        И вис насмерть на 24-х ядерных :)


    1. 3aBulon
      19.08.2018 17:29
      +5

      или одноядерный целерон


      1. rzerda
        20.08.2018 14:15
        +1

        Шутки шутками, а однажды я закостылял неработающий (зависающий) автотест в браузере добавлением второго ядра в виртуальную машину. По-моему, это был Chrome. Но мне некогда было разбираться, а виртуальных ядер не жалко. При этом оно точно не упиралось в вычисления, просто чего-то ждало.


        1. appletesta
          20.08.2018 15:46

          Одноядерные юзеры наверняка потом поминали добрым словом!


          1. rzerda
            20.08.2018 18:34
            +1

            Встретите кого-нибудь из этих троих — передавайте привет.

            Я ещё тогда погуглил и выяснил, что последний истинно одноядерный процессор выпустили на рынок в 2013 году. Даже Atom N270, который прямо сейчас у меня на столе лежит, имеет одно ядро плюс HT. У меня была проблема в том, что не работал автотест. Я проблему закостылил и пошёл дальше, и всем рекомендую решать больше насущных проблем, по возможности не отвлекаясь на общечеловеческие. А пользователям с одноядерными процессорами предлагаю жаловаться вендору.


            1. playnet
              20.08.2018 19:17
              -1

              У меня сейчас стоит процессор 2009 года, правда 4-ядерный. Вместе с RX570 вполне тянет Тарков и многие современные игры. Однако, бум развития это коре2, и они (и их аналоги) до сих пор вполне исправно трудятся в компах. Я еще понимаю сказать про «только 32-битные процы», их век действительно прошел.
              Более того, до сих пор выпускаются 2-ядерные процы. Уже не 1, но оооочень далеко до i9 и прочих хеонов.


            1. nikolayv81
              20.08.2018 21:07

              Greenpeace нужно вместо борьбы с нефтедобычей бороться с софтверными компаниями (теми же методами ;) ), тогда новых вышек не нужно будет изза снижения потребления ресурсов :)


    1. powerman
      19.08.2018 17:41
      -1

      Нет ничего плохого в том, чтобы для сборки и прогона тестов использовать мощные сервера. Но да, если в качестве рабочей станции разработчикам давать железо соответствующее минимальным требованиям разрабатываемого софта, то это крайне положительно скажется на оптимизации этого софта… и, к сожалению, крайне отрицательно на стоимости его разработки — поэтому так мало кто делает.


      1. fatronix
        19.08.2018 18:38
        +1

        в качестве рабочей станции разработчикам давать железо соответствующее минимальным требованиям
        Ну в случае с хромом это приведет к невозможности его собрать.


        1. tbl
          19.08.2018 20:07

          хром на одной локальной машине редко кто теперь собирает, в гугл для распределенной сборки distcc используют


          1. tbl
            19.08.2018 20:13

            извиняюсь, не distcc, а goma (но суть та же)


        1. Aytuar
          19.08.2018 21:14
          +1

          Собирать можно и на 24 ядрах, а вот тестировать как раз на 4-х и 4 ГБ памяти.


          1. tbl
            19.08.2018 23:00
            +1

            Кстати, очень полезная практика не только для десктопной разработки, но и для микросервисов, когда у тебя на разработческом ноуте 16+ гиг памяти и 4+ ядра, а разрабатываемый сервис живет в облаке на инстансах, каждый из которых с 1 гиг оперативки и 1 ядром.


          1. maybesomebody
            20.08.2018 10:03

            Нет, тестировать надо на Pentium-е, 32 битном, 1-2 ГБ оперативной памяти и древнейшая видеокарта на 256 МБ видеопамяти. И вообще в FullHD… Вот это будет оптимизация. И да, на этом он *почти* летает (говорю как пользователь таких счетов).


        1. Whiteha
          20.08.2018 03:38

          Да глупости про вести разработку на целероне, но как вариант для тестирования норм. Недавно был приятно удивлен запустив на ноутбуке 10 летней давности с Win 7 32bit (x86) на целероне с гигом оперативки хром из коробки.


          1. user343
            20.08.2018 20:40

            The Bat и почту/веб в Opera Presto попробуйте для сравнения, они точно не тормозят при наборе писем на одноядерных CPU. Тогда поймёте, что г-хром для зажратых "мажоров" избалованных хорошим "железом" пользователей.


            1. springimport
              20.08.2018 21:44

              И давно народные i5 стали роскошью?


              1. user343
                20.08.2018 23:18

                Сразу, т.к. апгрейд с сокета 775 потребовал бы замены матери, памяти, кулера, "закладок" в биосе и т.д.
                http://www.wikireality.ru/wiki/Аппаратные_закладки_в_Intel


                1. springimport
                  21.08.2018 16:03

                  В процессорах есть закладки, во всем они есть.
                  На все-про-все уйдет до полу штуки, если оставить корпус и бп. Если уже был ssd, то вообще хорошо.
                  Собственно, это опять тот момент когда «было бы желание».


              1. Areso
                21.08.2018 20:55

                Вы наверное не в курсе какой нынче курс или у вас зарплата в долларах? 14 тысяч за один только «народный» процессор это как бы больше, чем я отдал в 2011 за весь компьютер (за исключением видеокарты). Еще пару лет назад, до Ryzen'ов, 50% ПК у игроков в Стиме были с двумя физическими ядрами. Так что, полагаю, вы выдаете желаемое за действительное.


                1. springimport
                  21.08.2018 21:08

                  Я не спец по рублю и ценам в нем. Думаю что вы забыли учесть инфляцию.
                  Все же компьютер собирается раз в 3-5 лет, а то и реже, вряд ли это требует колоссальных покупок.
                  Техника нынче становится все больше для «энтузиастов» и ничего с этим не поделаешь.


                  1. Areso
                    21.08.2018 21:19

                    Мм, я не посмотрел ваше месторасположение. Справочно: рубль стал дешевле в 2 раза. Против инфляции смею возразить, что компьютерные железки становятся дешевле (часть из них — точно), если мы говорим о долларах.
                    С 2011 я собрал 2 системы. C Core i3-540 переехал на i5-3330 (со сменой матплаты), с i5-3330 на i7-4770 (аналогично). Дальше переезжать некуда без смены ОЗУ. Итого 3 сборки за 7 лет. Единственное, что поменялось с тех пор в моем поведении — я стал покупать компьютерные железки б/у, а не новыми.


                    1. springimport
                      21.08.2018 21:37

                      Против инфляции смею возразить, что компьютерные железки становятся дешевле
                      Посмотрел цены на i5 в Википедии, по ним ничего не изменилось. Скорее всего, для мат. плат тоже самое, а память вообще подорожала.
                      У меня с 11 по 18 был 3770 который полностью устраивал до недавнего времени, сборка была мощная. Итого: 2 сборки за 7 лет. Новая должна прослужить столько же.
                      С 4770 особого смысла переезжать в ближайшие годы нет если сейчас все устраивает.


      1. IRainman
        20.08.2018 22:21

        Не путайте разработчиков и тесты, я не оговорился, именно тесты, даже не тестировщиков ;)


    1. apro
      19.08.2018 17:42
      +1

      Возможно, имея компьютер с 4мя ядрами, они, выкачав с утра последние изменения из VCS, не успели бы к вечеру собрать chrome с новыми изменениями.


      1. zagayevskiy
        19.08.2018 18:37
        +1

        Для этого давно уже существует как минимум удалённая сборка.


        1. apro
          19.08.2018 19:31
          -1

          Ну насколько я знаю, каждая машина разработчика chrome одновременно является таким сервером удаленной сборки. Но учитывая что еще нужна IDE и их любовь к fuzzer'ам и sanitizer'ам думаю все равно в 4 ядра не влезет. Насколько я знаю Google активно участвует в разработке clangd, возможно это поможет им решить проблему с IDE, но все равно необходимость тестирования и отладки…


          1. Antervis
            20.08.2018 00:54

            Насколько я знаю Google активно участвует в разработке clangd, возможно это поможет им решить проблему с IDE

            всё необходимое для удаленной сборки, тестирования, отладки и пр. уже давно придумано, а в гугле явно есть еще и культура использования этих инструментов. Тем более что хром надо собирать и гонять тесты на нескольких ОС, и какой бы быстрой машинка разработчика не была, несколько серверов могут делать это параллельно


            1. apro
              20.08.2018 17:07

              всё необходимое для удаленной сборки, тестирования, отладки и пр. уже давно >придумано, а в гугле явно есть еще и культура использования этих инструментов.

              А смысл тогда какой? Если все будет происходить на удаленной машине,
              то какая разница сколько памяти и ядер на машине разработчика.


              Тем более что хром надо собирать и гонять тесты на нескольких ОС, и какой бы >быстрой машинка разработчика не была, несколько серверов могут делать это >параллельно

              Ну это уже CI/CD и по-моему к теме обсуждения касательства не имеет.


      1. 200sx_Pilot
        20.08.2018 00:59

        Разве это не повод задуматься об оптимизации кода?


      1. balsoft
        20.08.2018 11:22
        +1

        Неправда, хромиум спокойно собирается на 2-х ядерном Atom 32бит и 2ГБ оперативы за 6-7 часов. (я по глупости поставил на старый нетбук NixOS, а там для 32 бит пакеты самому собирать надо)


    1. Akdmeh
      19.08.2018 18:26

      Вспомнилась байка о том, что время от времени разработчиков приложения facebook заставляют включать медленный интернет, чтобы тестировать его в подобных сценариях и не забывать, что не у всех есть хотя бы 100 Мб канал.


      1. inkvizitor68sl
        19.08.2018 18:40

        Это не байка, и не только в facebook.


        1. isam_os
          19.08.2018 18:55

          судя по статье все таки байка… неплохо было бы пересадить всех этих горе недопрограммистов из крутых контор на компьютеры которые до сих пор продаются на авито… а интернет… это дело десятое


          1. engine9
            19.08.2018 19:27
            +1

            Современный веб это тормозные свистоперделки для коммерции.


          1. Chugumoto
            20.08.2018 07:52

            предлагаете мне выложить на авито лаптопчик Rein M5? компьютер? компьютер!
            даже у меня где-то сетевка валялась для него под rj45…


        1. Am0ralist
          19.08.2018 22:32

          Вот бы еще разработчиков сайтов и программ заставить пользоваться планшетами… Особенно небольшими. Мечты-мечты…


          1. firedragon
            21.08.2018 08:37

            Вы зря недооцениваете планшеты. НоНейм планшет резво крутит вебвью, делает кучу снимков и рисует нативный интерфейс. Хотя мой заказчик прямо говорил — Не трать деньги это расходный мусор.


            1. Am0ralist
              21.08.2018 10:18

              Да крутить то крутит, в интерфейсы под виндовые планшеты ни один популярный браузер не смог. Особенно в 8". Если он ещё будет FullHD — то там, видимо, только масштабировать кратно придётся. А уж какие они контекстные менюшки под палец делают… ммм… мечта пианиста.

              Хотя нет, мозила не смогла вообще на флешпамяти работать, хром так себе, стринги вот норм. В проц упираются слабо.


      1. TheDeadOne
        19.08.2018 18:58
        +3

        На предыдущем месте работы я согласовал с руководством ограничение скорости доступа в Интернет для отдела маркетинга и рекламы на один день в неделю. Весьма действенная мера.


        1. ainu
          19.08.2018 19:57
          +5

          А можно подробности? Польза какая то получилась? Почему?


          1. Areso
            20.08.2018 06:19
            +1

            Могу на спор поставить, что отдел маркетинга и рекламы внезапно узнал, для чего стоит пережимать фотографии с 20 MP до 1,2 MP перед выкладкой на ресурсы. Особенно, если таких фотографий — с десяток.


            1. InterceptorTSK
              20.08.2018 10:14

              Какое отношение отдел маркетинга и рекламы имеет к пережиманию фот и вообще к их «весу»? Они даже не обязаны знать что это) Вы фотки сами серваком или админкой клиентской жать не можете что ли? И да, нет смысла обрабатывать как-либо фотки вне контекста. Фотка помещается куда-то, и ваша обязанность сделать обработчик фот так, что бы обработка и контекст были единым целым.
              И да, отдел маркетинга и рекламы скажет вам лютое спасибо, если вы прикрутите еще и галочку «преобразовать фон в боке», ну вы же понимаете что мыло жмется в Х-цать раз лучше, так помогите рекламщикам с афигенными фотами и что бы они имели минимальный размер. И заодно прифигачьте водяные знаки и дескрипшены всякие в фотки, поисковики же на это неявно, но опираются до сих пор.

              Гонг вопрос: вы чего-нибудь можете вообще сделать вменяемо?) Или опять никак? Или опять рекламщики «виноваты»?


              1. TheDeadOne
                20.08.2018 10:18

                У них был штатный интернет-маркетолог, контент-менеджер и SMM'щик. Именно на отделе маркетинга и рекламы лежала задача по созданию контента и распространению его в Интернете.


                1. InterceptorTSK
                  20.08.2018 10:38

                  Понял) Кароче «сами виноваты». Как обычно.


                  1. TheDeadOne
                    20.08.2018 10:41

                    Отчего же? Я никогда не стремился к перекладыванию ответственности и тем более не пытался сотрудников отдела маркетинга и рекламы как-то наказать. Наоборот, я дал им возможность лучше понимать часть их ЦА, а значит лучше выполнять работу. Кроме того, почему-то люди часто забывают, что административные меры иногда работают эффективнее технических и нет ничего зазорного в их применении.


                    1. kroketmonster
                      20.08.2018 10:52

                      Зачем вы вообще общаетесь с «человеком» который использует )))) в своих сообщениях.


                      1. TheDeadOne
                        20.08.2018 11:15

                        Пишу я одному, но читает не один. Возможно, мои аргументы подтолкнут ещё кого-нибудь к переосмыслению подходов.


                    1. InterceptorTSK
                      20.08.2018 11:06

                      В итоге они сами следят за размерами фот, причем так и не объяснено зачем оно нужно. В итоге фотки оторваны от контекста, т.е. контекст сам по себе, фотки сами по себе. В итоге рекламщики закатывают солнце вручную.
                      Но вы дали им понять на словах «как правильно» ага?
                      И что толку с ваших слов? Им полегчало что ли?)


                      1. TheDeadOne
                        20.08.2018 11:13
                        +1

                        Процент отказов снизился, процент вернувшихся посетителей увеличился, конверсия по нескольким показателям увеличилась. Цифры говорят, что это была эффективная мера. Более того, рост показателей был зафиксирован и на других площадках, что говорит о позитивных изменениях в мышлении сотрудников, чего не добиться автоматическим пережатием изображений.


                        1. justboris
                          20.08.2018 21:25

                          Более того, рост показателей был зафиксирован и на других площадках, что говорит о позитивных изменениях в мышлении сотрудников

                          Что такое "на других площадках"? Эти сотрудники своим друзьям рассказали об экономии трафика, и теперь даже те, кому интернет не замедляли, картинки тоже жмут?


                          1. TheDeadOne
                            20.08.2018 22:35

                            Это значит, что наши сотрудники вели активную деятельность в соцсетях, на форумах, сайтах объявлений, сайтах партнёров и т.д. и т.п.


                      1. firedragon
                        21.08.2018 08:45

                        Это общая болезнь далеких от компьютеров людей. Скан в тифф да еще бес сжатия, да еще в атаче.
                        40 мегапиксельные фоточки, видео бэкграунд на страницах, паралакс с картинками 5-6к.
                        Да и типичная установка wordpress или drupal требует доп. настройки для авто. ресайза. Отдельный вопрос отстойный ресайз по умолчанию, который «убивает» хорошие фотографии


              1. Tufed
                20.08.2018 12:11

                > Вы фотки сами серваком или админкой клиентской жать не можете что ли?
                >… и ваша обязанность сделать обработчик фот так…

                разберем логически поэтапно:
                Судя по комменту выше, человек ограничил скорость интернет, а это значит, что, скорее всего, его работа связана с администрированием ресурсов. Не разработкой обработчиков фоточек, и не разработкой в принципе.
                И ваше предложение жать фотки «серваком» или «админкой клиентской», кхм, звучит как то бахвальски. Вы же не диванный аналитик. Если вы каждый день прикручиваете подобный функционал, то будь те добры приведите ссылки/мануал где это уже было сделано. Я не встречал подобной функциональности «из коробки», значит это нужно прикручивать отдельно.
                Опять же это не всегда это целесообразно. Я имею ввиду, что не в любой ситуации/организации трудозатраты на внедрение этих нововведений будут выгоднее, чем мера, примененная выше.


                1. InterceptorTSK
                  20.08.2018 12:31

                  Судя по комменту выше, человек ограничил скорость интернет
                  Этот человек написал какую-то метрику, никому не нужную. Потому что на нее наплевали. Ограничение скорости загрузки — это следствие. Следствие абсолютно невменяемого ПО. ПО оно для людей, а не для программистов. Если ПО пишется для быдлы — то быдла всегда будет бунтовать, не нужно быдлу держать за откровенную быдлу. Чюдес не бывает. В данном случае этот невменяемый человек зачем-то попытался объяснить что фотки — это тяжело. Но он ничего не сделал, что бы облегчить фотки. Вообще ничего. И переложил проблемы. Т.е. он не решил проблемы. Он их переложил. А проблемы как были, так и остались. Более того, насоздавал еще большее кол-во проблем, чем было «до». Вменяемые разбежались сразу же, а невменяемые те что остались на какие-то там метрики все равно глядеть не будут. Выводы.
                  то будь те добры приведите ссылки/мануал где это уже было сделано
                  Присмотритесь. Оно уже как лет 15 реализовано. Давно. Только вы пользуетесь не тем. Берете фреймворк второй и на нем пилите обработчик изображений. Этим же приложением заливаете обработанные фотки. Задача на неделю. Для вменяемого. Но вы же будете всегда искать готовое. Потому что думать уже не в состоянии. А написать собственные 200 строк уже не можете. И это нормально. Нынешние программисты вообще ничего не делают и проблем не решают.
                  Если сильно подумаете на что вы неспособны по-определению, то вообще админки будете собирать на опен-джи-еле. Вам даже обертки на шарпе давно выдали. И вы не в состоянии быстро подгрузить фоток в приложение, покрутить/обрезать и отправить на сервак? Вы на календарь давно смотрели? 2018 год как бы. А вы не в состоянии порезать и осветлить фотки? Быстро. Без геморроя. Не? Никак?
                  И главное же для этого нет ничего ага? Ну вот принципиально нерешаемая проблема.

                  А между тем шел 2018 год. Решений нет. Ага. Собрать свое религия не позволяет. Ну что поделать… Так и живем. Колхоз-интертейнмент.


                  1. Tufed
                    20.08.2018 12:50

                    Я всего лишь хотел донести до вас мысль что человек решил задачу «как смог» и для него это оказалась «действенная мера». Не создавать ненужную задачу и не писать её неделю, а быстро и действенно. Просто вы видите проблему со другой стороны, со стороны программиста. Для вас всё решаемо, вопрос только в знаниях и времени на написание программы. Бизнес, к сожалению, оперирует другими понятиями изначально и методы, затрачивающее меньше времени и сил, приветствуются.
                    Пожалуйста, держите себя в руках, не переходите на оскорбления, это не выставит вас лучше. У меня всё в порядке со способностью думать. Похоже же у вас горит от моего комментария, давайте закончим.


                  1. MacIn
                    20.08.2018 13:30
                    +1

                    И переложил проблемы. Т.е. он не решил проблемы. Он их переложил. А проблемы как были, так и остались.

                    Он не переложил проблему, а подтолкнул решать ее того, кто ее должен, но не хочет, решать.


                  1. Am0ralist
                    20.08.2018 14:53

                    А потом вдруг оказывается:
                    — а сделайте нам сводную табличку в экселе,, мы менеджеры по продажам, а не программисты, мы не должны знать, как эксель работает
                    — а отформатируйте нам табличку, мы менеджеры по продажам, а не программисты, мы не умеем
                    — а напишите на формулу sum(a1:a155), мы менеджеры по продажам, а не программисты, мы не умеем

                    И да, это утрированно-обощенные обращения от реальных менеджеров по продажам в наш отдел. Ибо люди привыкают, что можно свои обязанности переложить на IT, вместо того, чтоб научиться делать самим.
                    Ок, в этом случае товарищ должен был бы попросить выдать премию за увеличение конверсии и прочие параметры — ему за счет депремирования интернет-маркетологов и прочих с ними, которые. Ибо именно его действия позволили принести прибыль в контору.


              1. DelphiCowboy
                20.08.2018 12:32
                +1

                Вы фотки сами серваком или админкой клиентской жать не можете что ли?

                Реально ОЧЕНЬ стрёмный вариант, когда реально понадобилась большая картинка с какой-нибудь схемой, а из-за козла с админскими правами сервер всё пережал до вырвиглазно мелкого состояния. :(


                1. InterceptorTSK
                  20.08.2018 13:23

                  Согласен. Стремный) Сам через это прошел. Давно.
                  И как бы я не крутил и не вертел решения — ничего нет. С браузера убежали еще лет 10 назад. В админке с браузера что-либо сделать с картинками не представляется возможным вообще.

                  Потому и ушли на свой маленький фотошопчик. В клиентском приложении на дот.нете. Вусивуг получился замечательный. У нас нет таких проблем. Потому что жмете все равно вы сами через расширенный режим. Если автоматически не устраивает — жмите руками. И такое у нас есть. Если схема, то на нее надо накинуть контрасту, что бы фон пооднороднее стал, и зажать в пнг. Артефактов с жпега уже не будет на кривых. Схема получится хорошей. За два действия.

                  Автоматического определения фота это или не фота у нас нет. Но т.к. 99% заливают фоты а не схемы, то пока такой проблемы не стоит вообще. Как появится — решим и это) Тем более оно не сложно. Т.е. эти два действия и выбор формата можно убрать. Например тупым выбором: фотка/схема.
                  При наведении на пункт «фотка» можно так и написать — для фоток, это когда изображение фотографическое, и при наведении на пункт «схема» можно написать что изображение преимущественно из линий, фон однородный.
                  Юзер сам выберет уже в одно действие в чем сохранять и нажмет «аплоад». Этого достаточно.


              1. saboteur_kiev
                20.08.2018 14:11

                Потому что когда маркетологи хранят все макеты исключительно в письмах, а мактеты занимают по 50-100 мб, и в почтовом ящике по 20-30 редакций одного и того же макета, тебе хочется уже как-то отшлепать и заставить прочитать инструкцию про давно выделенную для этих нужд в компании самба-шару или фтп сервер, инструкциями о котором ты уже не первый год спамишь, но все их игнорируют.


                1. InterceptorTSK
                  20.08.2018 14:57
                  +1

                  И правильно делают) Потому что ваш самба и прочая ламбада им не удобен. Вот и все.

                  Как бы вы не крутились — они будут делать как им удобнее и понятнее.

                  А вы сами этой своей ламбадой часто пользуетесь? Спросите себя почему не часто) Получите ответ. Много действий. Половина из них не понятна. Проведите соц.опрос — получите подтверждение.

                  Сделайте понятно и просто для людей — будут пользоваться.

                  Иначе никак.


            1. TheDeadOne
              20.08.2018 10:17

              Именно так. Последней каплей стала публикация на главной странице сайта анимированного gif-банера с разрешением 1000x500 в несколько десятков мегабайт весом. Сначала я доработал сайт так, чтобы админка отображала среднее время загрузки страниц, но они просто игнорировали эту метрику. Была мысль выставить ограничения на размеры загружаемого контента или добавить автоматическое пережатие. Но потом я понял, что это борьба не с причинами, а следствиями.


              1. InterceptorTSK
                20.08.2018 11:33
                -1

                чтобы админка отображала среднее время загрузки страниц, но они просто игнорировали эту метрику
                Вы не можете написать по-русски — «будет тормозить!». Не? Никак?)

                Послушайте, то что вы пишете — это гавно. По очень простой причине. Кампутер для того, что бы решать проблемы не задумываясь. Вы же зачем-то заставляете думать. В идеале, и к нему нужно стремиться — должна быть одна волшебная кнопка. И все. Например «аплоад». Этого достаточно. А лучше вообще без кнопки. По щелчку пальцев. Но пока оное реализовать достаточно проблематично. Это я про «пальцы».

                Ваше ПО должно само разгребсти весь ворох медиа-контента с прицепленного фотика. САМО, понимаете?)

                Вы же сделали следующее: вы неимоверно увеличили кол-во операций. Искусственно. Зачем? Вы заставляете куда-то смотреть, зачем-то, что-то анализировать. Затем принимать решение. Переделывать. Опять анализировать переделанное. И т.д. Вы можете объяснить, зачем вы пишете такое монструозное ПО? Оно кроме вас никому не нужно. Потому что оно не решает проблем. Оно как раз таки наоборот — создает неимоверное кол-во проблем.

                Вы объяснитесь хоть как-то) Зачем вы это делаете?


                1. TheDeadOne
                  20.08.2018 11:51

                  Компьютер для того, чтобы помогать человеку делать больше работы за меньшее количество времени, а не для того, чтобы меньше думать. Впрочем, за 5 лет работы в той компании мне удалось автоматизировать многие аспекты работы каждого из отделов, что в конечном счёте позволило уволить множество сотрудников, которые не умели или не хотели думать.

                  Я делаю то, за что мне платят. А платят мне, если отбросить все нюансы, за увеличение прибыли.


                  1. InterceptorTSK
                    20.08.2018 12:01
                    -3

                    Мда… Похоже этой стране уже совсем «помочь» нечем…


                    1. 0xf0a00
                      20.08.2018 13:36
                      +2

                      Вот извините, но по вашим сообщениям видно, что вы человек который привык сваливать на других, кто то должен думать, кто то должен прикручивать, кто то должен… А я? А я ни о чем задумываться не хочу, хочу что бы работало. И именно ограничение интернета сотрудникам подобного плана позволило их хоть как то расшевелить. Ваше возмущение вполне понятно.


                1. Easterncheese
                  20.08.2018 13:32
                  +3

                  Важный момент заключается в том, что те, кто ответственны за работу с клиентами, очень часто плюют на тот факт, что не у всех 100 мегабит и топовая видеокарта. В случае торговых бизнесов, это регулярно приводит к тому, что до покупателя информация не доходит или доходит в таком виде, что он плюет и идет к конкурентам. Именно эту проблему и решил TheDeadOne. Проблема, в данном случае, находится не в том, что кому-то лень автоматически жать фотки, а в том, что люди, ответственные за работу с клиентом, понятия не имеют, в каких условиях находятся их клиенты и не представляют, нравится и нужно ли им вообще то, что эти самые ответственные делают.
                  Как раз «низведение» до среднестатистического пользователя, грамотно обоснованное не под соусом «спуститесь с небес на землю», а под соусом «так легче понять среднего клиента», может очень качественно увеличить эффективность работы во многих сферах, о которых даже не подумаешь. Иными словами, вместо того, чтобы перестраивать инструменты, которые будут исправлять последствия неправильного мышления, человек перестроил людям мозги на правильное мышление. Тех. средства тоже будут полезны, но главная работа уже сделана.


                  1. InterceptorTSK
                    20.08.2018 13:56

                    Да ничего не сделано) Рекламщики как не жали фотки так и не жмут. Потому что не умеют. Они вообще не понимают что это. И не обязаны понимать.
                    Ну вы что правда думаете, что сидит рекламщица Люсия, и она подгоняет размер фоты и качество фоты, что бы размер в пикселях был максимальным, качество не улетело, а размер в байтах был минимальным? И может быть она из по функции трех переменных экстремум найдет?))))) Слушайте, вы сами на это способны? И сколько у вас на это уйдет времени? А рекламщица Люсия даже и не поймет что от нее хотят. Вообще никогда.

                    Ну сожмет она как-то там. И что?) Это будет оптимальное сжатие исходя из размеров фотки в пискелах — качестве — размере в байтах? Да не смешите.


                    1. MacIn
                      20.08.2018 14:15

                      Можно настроить фотошоп на работу по макросам на те же типовые действия, под которые вы пишете свое ПО. Инженер не пишет программу на каждый чих, он решает задачу. И написание своего велосипеда — это только один из вариантов.


                      1. InterceptorTSK
                        20.08.2018 14:36

                        Не получится.
                        Фотошоп — не вусивуг. Вообще ни в одном глазу.

                        Когда вы поворачиваете фотки — фотошоп не показывает сразу как вы их поворачиваете. Фотошоп не может содрать фон сайта и подложить под фотку. Обрабатывать фотки иначе — бред сивой кабылы. Фотка ВСЕГДА имеет контекст. У фотошопа его ж нет, там тупо сильно притемненный фон. Какой смысл править фотку под этот фон, если у вас сайт белый? Как автоматически стащить фон сайта в фотошоп в подложку? Как сообразить аплоад в фотошопе на сервак? Как в фотошопе сохранять автоматом копии оригиналов фот? Как в фотошопе получить матрицу преобразования фотки? Как в фотошопе рассчитывать функцию из нескольких переменных, исходя из размеров и качества?
                        И еще, в фотошопе должно быть например два поля под подписи фотки как на сайт, так и внутрь фотки.

                        Вполне может быть это можно решить фотошопом. Но все описанное — оно достаточно тривиально решаемо самостоятельно. Плюс ко всему это вовсе не велосипед. То что есть у нас — оно для аплоада на сайты, фотошоп же такой функционал даже не преследует.

                        Мы преследуем принципиально иные цели, нежели фотошоп. Условно называем фотошопом и наше поделие. Но это уже далеко не фотошоп. Цели другие абсолютно.

                        И не пишем мы никакое ПО) Оно написано 10 лет назад. Лет пять назад подправилось и то нехотя, до сих пор и юзается как есть. Падать нечему, все ж примитивно. Править нечего.

                        И с фотошопом даже на уровне макросов я бы связываться не стал даже потому, что каким-нибудь упырям придет в голову язык макросов «чютка подправить», а значит придется править и макросы. Они же не могут сделать и успокоиться) А значит эта фигня рано или поздно перестанет работать. А оно мне надо вообще?

                        Фотошоп так или иначе придется поддерживать. Не хочу и не буду. Смысла нет.

                        Тем более возможны некоторые места, где ПО исключительно платное. У нас нет таких клиентов) Все воровано. Но это же не значит, что таких клиентов не будет. И что я им предложу? Купите фотошоп? Однако…


                    1. Easterncheese
                      20.08.2018 14:17

                      Что ж, возможно, что у вас в компании рекламщица Люся и работает. Когда мне поработе нужно взять фотографии и информацию о продукте, наши не самые умные, на мой взгляд, рекламщики чудесно говорят мне какое разрешение и формат у нас принято использовать, дабы все было хорошо. Личный опыт у каждого свой. Идиотов такой способ думать не научит, а нормальных людей, которые просто не задумывались над вопросом (а таких большинство), это приучит обращать внимание на такие вещи.


          1. TheDeadOne
            20.08.2018 10:20

            Значительная часть нашей ЦА осуществляла доступ к сайту на скоростях 128-512 килобит, но сотрудники, чьей основной задачей является взаимодействие с ЦА, учитывать интересы последних даже не пытались.


      1. domix32
        19.08.2018 20:29
        +1

        В браузеры уже относительно давно завезли троттлинг канала. Мобильная эра как никак


      1. nikolayv81
        20.08.2018 21:11

        И даже не в 100мбит дело, а в ping-е :)


    1. Marwin
      20.08.2018 00:32

      ну, кстати, кстати… этот самый 24-х ядерный процессор в значительном количестве десктопных сценариев как раз уступает любому 4х ядерному ввиду значительно более низкой частоты ядер, а как мы знаем, почти весь десктопный будничный софт не использует сколько-либо существенное количество ядер, чтобы преимущества 24 перевешивали.
      Я сам с этим столкнулся, имея 14-ядерный Xeon. Именно в разработке он шикарен: мне нужна VS с решарпером, виртуалка с МакОсью, эмулятор ios (да-да, я мазохист, пишу под ios из-под винды, даже не имея мака) и прочие приблуды. Но просто в том же голом хроме… и некоторых других банальных задачах 3,0ГГц — далеко не предел мечтаний, и даже порой вспоминаю, как оно было даже лучше на 4х Сэнди @4,5ГГц


      1. Vilgelm
        20.08.2018 06:08

        эмулятор ios

        А такие есть? Эмуляторов Android полно, а вот iOS не видел. Не поделитесь названием продукта?


        1. ad1Dima
          20.08.2018 07:18

          скорее всего там был всё же симулятор. Используемый стек намекает на docs.microsoft.com/en-us/xamarin/tools/ios-simulator


          1. Marwin
            20.08.2018 09:12

            да, от xamarin, сорри, неудачно слово подобрал.


    1. evil_me
      20.08.2018 11:42
      +1

      1. arthi7471
        20.08.2018 12:56

        12309 похлещще фак ю нвидии будет. Особый треш это гибридная графика.


  1. leR12
    19.08.2018 19:18

    «выкинь» хром


    1. barker
      19.08.2018 21:06
      +2

      оригинальный совет разработчику хрома


      1. leR12
        19.08.2018 21:32
        +1

        кто то должен ему сказать )))))) может что иное и создаст.


        1. sumanai
          20.08.2018 00:30

          может что иное и создаст.

          В XXI веке создание «иного» начинается с форка хрома (Microsoft форкнул Trident, но это исключение).


          1. rPman
            20.08.2018 12:19

            а фаерфокс форкать уже не комильфо?


            1. playnet
              20.08.2018 16:27

              Потому что ФФ это шлак, простите. И с каждой версией они умудряются ещё хуже сделать. По мне оптимальная была версия 3.5, и с кучей дополнений 700 табов фф умещались в 2 гига рамы. А сейчас что? Потребление памяти хуже чем в хроме, только утечки никак исправить не могут и тормозит гораздо сильнее.
              А как они интерфейс испортили? «у конкурентов лучше, возьмем худшее у них и сделаем свой особый путь».
              У меня что дома, что на работе аптайм хрома — месяцы, фф — максимум 2 недели, потом или сам упадёт или снимаю чтобы освободить от утёкшей памяти.


              1. Am0ralist
                20.08.2018 20:52
                +4

                По мне оптимальная была версия 3.5, и с кучей дополнений 700 табов фф умещались в 2 гига рамы. А сейчас что?
                А вы откройте сейчас эти же 700 табов в фф 3.5 и посмотрите…


                1. playnet
                  21.08.2018 18:24

                  Проблема в том числе в сайтах, я знаю. Но — просто открыть 100 хабров в последнем фф и 3.5 — в 3.5 это будет не более 2 гигов, фф съест гигов 10 если не больше. Ну и текучесть всё-таки присутствует.


              1. vovansystems
                21.08.2018 13:21

                аптайм хрома — месяцы

                а патчи безопасности Вы не устанавливаете?


                1. playnet
                  21.08.2018 18:11

                  в линуксе на рабочей станции это особо не нужно, чего-то критичное там раз в пару лет, да и какой-нибудь dhcpd обновляется без перезапуска хрома. В винде не ставлю, но и по левым сайтам не хожу, шансов что-то подцепить мало.


          1. stalkerg
            20.08.2018 12:27

            А как же WebRender?


            1. leR12
              20.08.2018 19:55

              K-Meleon 76.0… быстр


              1. RifleR
                20.08.2018 21:08

                и построен на 38 Файрфоксе? Ну это не серьезно. Сейчас такие браузеры живут за счет 11 ИЕ. Как только его процент упадет ниже критического значения и поддерживать его не нужно будет, вместе с ним отвалятся (на большинстве сайтов, где идет активная разработка) и все эти К-Мелеоны, СиМанки и ПалеМуны.


                1. Paranoich
                  21.08.2018 10:38

                  Уже давно как не на 38 Gecko, но на Goanna, который ? 56 версии Gecko, что устаревшим назвать пока трудно. При чём тут ИЕ — загадка.

                  Много ли сайтов на древней Опере не работает?


                  1. RifleR
                    21.08.2018 12:00

                    Быстрое гугление показало, что 76 версия на 38 Gecko, но если это не так — то хорошо.
                    "Много ли сайтов на древней Опере не работает?" — так то я этой Оперой не пользуюсь, но сейчас установил и попробовал несколько сайтов. На большинстве как минимум лезет верстка (github, gitlab, apple, habr), некоторые совсем неюзабельны из-за сломанного JS (airbnb, privat24, babel-repl). Конечно, если сайт разрабатывался еще в начале 2010-х или раньше, то там все будет работать, но ведь время идет и новые разработки не поддерживают такие браузеры.


                    1. Paranoich
                      21.08.2018 13:17

                      Там с версиями путаница, никто ведь толком проект не координирует, так что как бы есть и «вроде как официальная» на том самом гекко, и неофициальные. Ситуация путанная, так как фактически официальная устарела и приходится неофициальные считать актуальными. А номерами версий никто не озаботился, видимо ждут хоть какой-то реакции от самого разработчика, а её всё нет и нет.

                      Но по крайней мере в википедии факт наличия версии с гоанной указан.

                      Гуглить (при заинтересованности) лучше по конкретным сайтам, или официальному kmeleonbrowser.org/forum/read.php?19,143253 или в ветке forum.geckoworld.ru/index.php/topic,241532.0.html (как вариант — на forum.mozilla-russia.org/viewtopic.php?id=67737&p=5 или на руборде ( forum.ru-board.com/topic.cgi?forum=5&topic=49147&start=1040 )

                      Так что в ваших словах насчёт устарелости правда есть, потому что держится всё сейчас лишь за счёт свободного времени у любителей и считать сборки нового КМ заменой старого официального нельзя.

                      Конечно, если сайт разрабатывался еще в начале 2010-х или раньше, то там все будет работать, но ведь время идет и новые разработки не поддерживают такие браузеры.

                      Есть опасение что с возможным падением популярности Firefox скоро сайты будут поддерживать нормально лишь хром, ведь даже сейчас уже есть какие-то (временные?) проблемы на ютюбе


                      1. RifleR
                        21.08.2018 14:03

                        Если поддерживать Хром — это поддерживать все новые стандарты, то я не против таких перспектив. Пока что я не встречал нормальных аргументов против текущей ситуации (когда разработчики ориентируются на Хром в первую очередь). Конечно, это не значит, что нужно забивать на остальные вечнозеленые браузеры, то есть нужно поддерживать 2-3 последние версии каждого из основных 4 браузерных вендоров (движков). Но если есть какая-то фича языка, которая позволяет легко добавить функционал или упрощает разработку, то не вижу смысла отказываться от нее только потому, что ее поддерживают 2 из 4 движков (если в остальных можно использовать полифиллы). Да, полифилл может быть медленным, но кто виноват разработчикам Файрфокса, что они до сих пор не включили Веб-компоненты по умолчанию? Или может всем остальным нужно остановиться и подождать разработчиков из Майкрософт, которые даже не начали имплементацию Веб-компонентов в Эдж (и поэтому там будет более тормозной полифилл)?


              1. stalkerg
                21.08.2018 04:10

                Только если у вас нету современного GPU и одноядерный процессор.


  1. lasc
    20.08.2018 02:19

    Открыл таск менеджер, посмотрел на вкладку гмайл сожравшую с утра 550мб. Складывается впечатления, что в гугле гмайлом таки не пользуются.


    1. devalone
      20.08.2018 13:23

      Просто у них у всех компы с минимум 16Гб оперативки


    1. nikolayv81
      20.08.2018 21:43

      У них локаль другая :)
      А серьёзно это очень влияет, андроид 7.1 голый просто падает в некоторых "экранах" из-за кривого подхода к локализации, также многие телефоны обретают исключительно киррилияеские глюки (судя по симптомам — утечки памяти).


  1. Regis
    20.08.2018 04:59

    у меня в фоне работает UIforETW и отслеживает циклические буферы
    UIforETW не «отслеживает циклические буферы», а пишет события системы в циклические буферы.

    В оригинале:
    I had UIforETW running in the background, tracing to circular buffers


    1. tyomitch
      20.08.2018 17:51
      +1

      Судя по «непрямым ответвлениям» вместо «косвенных переходов», статью переводил гуглтранслейт.


  1. Nikobraz
    20.08.2018 05:16

    Почаще бы программисты пользовались бы софтом над которым работают, этож насколько мир мог бы быть лучше.


    1. Kwisatz
      20.08.2018 06:44

      Вот я так уже 15 лет говорю 8)


      1. devalone
        20.08.2018 13:28

        зачем ты 15 лет говоришь «8»?


  1. balamutang
    20.08.2018 08:11

    " Если хотите запустить сканирование вручную, можете зайти в Control Panel > Configuration Manager > Actions, выбрать Hardware Inventory Cycle и нажать Run Now."
    Автор забыл что SCCM стоит не на каждом компьютере


    1. acyp
      20.08.2018 11:18

      Плюсую. Ибо сам с сонных глаз кинулся искать :).


  1. gban
    20.08.2018 09:42

    Сплошные проблемы с этим 24 ядерным процем — то мышь не двигается, то почта, то просто тормозит… пожалуй не возьму :)


  1. olnl
    20.08.2018 10:00

    А известно ли, почему Google Chrome так долго стартует, даже на очень мощном компьютере?


    1. daggert
      20.08.2018 10:05

      Чтение кэша с диска. Поставил ссд — тормоза при запуске убрались сразу. Причем размер не особо большой, просто файлов много.


      1. Eldhenn
        20.08.2018 11:12

        SSD тоже жалко. Я ему под кэш отдал полтора гига оперативки.


        1. daggert
          20.08.2018 12:55

          Да бросьте вы. ССД это расходный материал. У меня за 5 лет ни один ССД с самой простой памятью не сдох, при этом в сути туда ходит человек 20 по удаленке и 100-200 гигов данных.
          Мой личный рабочий комп с 128 ССДшкой живет уже седьмой год при условии что я его сношаю и в хвост и в гриву.
          Про цены я понимаю, жалко денег, но когда получаешь увеличение скорости существенное — понимаешь что становится не жалко.
          Хотя дома я только в прошлом месяце сменил хдд на ссд, именно ради хрома (:


  1. fukkit
    20.08.2018 12:34

    Джимэйл плохеет на глазах. Вот уже и тупые интерфейсы подвезли, белое на белом выделяем белым. Но текст все еще серый, есть над чем работать высокооплачиваемым уберпрограммистам гугла.
    Поделка тормозит, жрёт память и портит нервы? Не беда! Зато мы идеально знаем, почему люки круглые и разворачиваем строку на белой доске за любое О.


    1. devalone
      20.08.2018 13:39

      Ну, материальный дизайн на любителя, мне раньше тоже не нравился, сейчас норм, не шедевр конечно, но во всяком случае лучше дизайна майкрософта, где только однотонные прямоугольники.
      А вот тормозят их продукты с каждым обновлением всё сильнее, да, на моём pentium 3825U с 2 Гб рамы это очень ощутимо. Тот же ютуб просто перевели на новый ангуляр, сделали материальный дизайн и добавили пару анимаций и он стал жрать больше памяти и медленнее работать. Для другой компании можно сказать мол «у них нет много денег на крутых программистов», но для компаний уровня гугла такое, имхо, не простительно.
      Кстати, про люки не спрашивают уже, я в конце мая собеседовался(не прошёл), таких идиотских вопросов не было.


      1. sumanai
        21.08.2018 18:55

        Я в последнее время просто вставляю ссылку в PotPlayer. Тут и аппаратное ускорение, и управление удобное, и поверх всех окон умеет, в том числе и браузера.


        1. devalone
          21.08.2018 19:22

          Т.е. смотришь видео с YouTube через него?


          1. sumanai
            21.08.2018 21:57

            Ну да.


    1. xlenz
      20.08.2018 13:44

      Поддержу. У кого не спрашивал никому интерфейс джмейла не нравится, либо отвечали, мол терпимо…
      Неудобно и некрасиво. Всегда забываю где кнопка форвард сообщения.
      Приходиться в гугле часто искать как сделать в гмейл что-то, например гуглил о поиске последний раз, это какой-то позор.
      Как альтернативой пользуюсь почтой мс и


      1. xlenz
        20.08.2018 13:45

        Яндекс


  1. adeptoleg
    20.08.2018 13:30

    Огромное спасибо! помогло.


  1. mbait
    20.08.2018 14:40

    Когда программа Windows перестаёт передавать сообщения

    Неверный перевод. На самом деле имеется то, что программа не должна допускать слишком больших задержек между чтениями очереди системных сообщений (message pumping), иначе пользователь будет наблюдять «подвисания», потому что во время обработки следующего сообщения в одном и том же потоке графический интерфейс приложения не обновляется, и приложение не реагирует на ввод пользователя.


    1. u007
      21.08.2018 05:40

      Перевод вообще какой-то… своеобразный… Прежде чем переводить предложение, желательно его понять. А как понять "… у меня в фоне работает UIforETW и отслеживает циклические буферы.."? Чьи буферы он отслеживает? "… отпускающий блокировку на этот стек.." — на стек, или всё-таки на стеке (находясь на)? В полном соответствии с известным афоризмом непонятные термины (sparse — разреженный) просто опущены. Правильно, текст же полностью сохраняет смысл и без них…


  1. FreeManOfPeace
    20.08.2018 15:35

    Пора пересадить всех разработчиков браузеров и сайтов на 2 ядра @ 2 гига (а лучше 1 ядро и 1 гиг), пусть делают что бы там не тормозило, иначе так и будет. Функционала то принципиально за 10 лет не сильно прибавилось, а вот системные требования возросли на порядок.


    1. Whuthering
      20.08.2018 16:15

      «Не прибавилось...»
      Вы шутите?
      Сравните хотя бы просто объемы сайтов (html+скрипты+стили+изображения в килобайтах/мегабайтах) 10 лет назад и сейчас.
      А потом ради интереса откройте спецификации веб-стандартов и языков тех времен, и сегодняшние, и сравните, опять же, объем и количество деталей.
      Сильно удивитесь.


      1. playnet
        20.08.2018 16:35

        о том и речь что «объёмы сайтов» растут непомерно. Норма, когда сайт подгружает десятки мегабайт всякой шелухи.
        Спеки конечно выросли, технологии на месте не стоят, но что действительно полезного добавили? html5 со встроенным видео и неотключаемой рекламой (пока flash) и… всё? Я несколько не в теме, так что просьба перечислить.
        И основная проблема именно в разработчиках сайтов, а не новых спеках, имхо.


        1. InterceptorTSK
          20.08.2018 17:36

          Ранее сайты собирали на коленке, ну т.е. в блокнотике. И это было хорошо.
          Потому что человек когда писал например вот такое:
          <див class=«fgh»>
          <див>
          <что-то></что-то>
          </див>
          </див>,
          то он понимал что он делает и зачем, понимал за каждый блок. И лишнего не вставлял — зачем?)

          Сейчас же этими самыми автоматическими программками вообще не понимают что делают. Самые разобычные конструкции фигачат в такое непотребное дом-дерево, что ужас…
          Еще любят всякие новомодные сетки и прочую чюшьню, это когда нафигачивают еще больше лишнего с еще бОльшим кол-вом классов.

          А всякие следилки скриптовые в любом случае будут на 77 раз парсить дом-дерево — их хлебом не корми. И навешают на все что можно своего гавна.

          И еще оно модно стало ездить и меняться) Транзишены появились. Но никто вменяемо прикрутить транзишены не способен. Даже яндыкс. Поглядите например в хроме как яндыкс свой говно-дзен рендерит на транзишенах. В хроме это можно легко посмотреть.
          Тут конечно диву даешься, насколько колхозно оно писано. А впрочем так везде.

          В тулсах там поглядите рендеринг, запустите фпс-метр, и обводки на репаинт.
          Этих дебилов из яндыкса можно строем выводить и расстреливать. Бесполезные существа.

          Собственно такая вот непотребщина и жрет ту же память ведрами. Ничего удивительного тут и нет.


      1. nikolayv81
        20.08.2018 21:55

        Gmail-ом пользуюсь с того времени когда в нём регестрировали по приглашению, из вункционала прибавилось каталогизация и метки, плюс когда-то очень давно google-talk(hangouts) добавили, именно функционала чтото больше не припомню, но раньше он работал в браузере windows mobile 6, с, если не ошибаюсь, 128 mb оперативки.


  1. beavis88
    20.08.2018 16:23

    По-моему пару лет назад я уже читал здесь же эту статью. За это время ничего не поменялось?


    1. alizar
      20.08.2018 16:58

      Возможно, вы вспомнили статью «24-ядерный CPU, а я не могу сдвинуть курсор» того же автора.


      1. beavis88
        20.08.2018 17:26

        Да. точно, это она.


  1. maxdm
    20.08.2018 19:36

    рутинных поездок
    — кажется, не очень удачный перевод, но как перевести commute methods — не знаю


    1. tyomitch
      20.08.2018 20:26

      Это просто рабочий вариант обычного обсуждения рутинных поездок
      Clearly just a normal work-related discussion of commute methods

      «Обычная рабочая дискуссия о способах добраться до офиса».

      А в строчке выше, «у кого больше опыт работы со Scuba» — это на самом деле «у кого больше опыт ныряния с аквалангом».


      1. alizar
        21.08.2018 10:18

        1. Про офис в оригинальном тексте ничего нет.
        2. Судя по всему, это рабочая переписка, так что можно предположить, что речь идёт об опыте работы с нестандартной СУБД (Scuba от Facebook), а не о нырянии с аквалангом.


        1. tyomitch
          21.08.2018 10:36

          В оригинале со слов «commute methods» стоит ссылка на блогпост про сотрудника гугла, добиравшегося до офиса вплавь.

          Очевидно, что переводчик (как и вы) даже не попытался разобраться, что в тексте имеется в виду (рабочая дискуссия о СУБД Scuba? а при чём здесь поездки?) — какая разница, ведь про офис в оригинальном тексте ничего нет, так что хуяк-хуяк, опубликовать перевод.


          1. alizar
            21.08.2018 10:55

            Вы правы, переводчик совсем обленился. Говорит, что даже не посмотрел внимательно видео по ссылке. Надо лишить его премии. Спасибо за замечание!


  1. springimport
    20.08.2018 21:52

    Автор не раскрывает модель своего процессора, но скорее всего там что-то вроде Xeon® E7-8890. Частота в самом лучшем случае 3.4.

    Странно жаловаться на производительность имея средний процессор. Да, да, это так. Даже не уверен что он дотягивает до 3770 по скорости ядра, не говоря уже про 8700k на 5.0. Еще на таком количестве ядер могут быть проблемы с синхронизациями и так далее.
    Именно поэтому новые i9 никто не покупает для игр и обычных задач где наиболее важна производительность одного ядра.


    1. nikolayv81
      20.08.2018 21:59

      Блин а у меня 2.8, поэтому наверное нет хрома :)
      Конечно все нищеброды со слабыми процессорами должны вводить символы с перерывами :)


      1. springimport
        20.08.2018 22:06

        Тут тот случай когда «было бы желание».
        Если 2.8 в базе то они разгоняются до 3.8, скорее всего.

        И да, gmail и youtube последних версий непомерно перетяжелены, так делать нельзя, конечно.


        1. nikolayv81
          20.08.2018 22:51

          Ради чего разгон? На этом процессоре шести(вроде) летней давности вполне себе хорошо работает нормальное ПО, несмотря на в 3 (наверное) раза меньшую производительность на такт, наверное я не принадлежу к категории людей покупающих новинки только за новизну, как-то другие приоритеты :)


          1. springimport
            20.08.2018 22:58

            Каждому свое.
            Быстрый процессор радует тем что все летает. Та же IDE на ноуте может запускаться и индексировать проект под 3 минуты. На 8700k это происходит за 15 секунд.


            1. nikolayv81
              20.08.2018 23:10

              Наверное зависит от того что за ide, что за проект, у кого-то на работе основным тормозом мешающим комфортно решать задачи может быть шкаф exadata/стойка ibm-вских power-ов где-то в одном из ЦОД-в компании. У каждого действия есть своя цена, ничто не мешает написать софт тормозящий на чём угодно, мне не раз приходилось видеть выжирающие все ресурсы хранилища "не оптимально" написанные запросы с последующими героическими попытками решения проблемы делением на части и т.п., пример в статье весьма в эту тему.


              1. springimport
                21.08.2018 15:57

                IDE — PHPStorm. Ее тяжесть обуславливается функционалом, собственно, это самый топ для разработки.


  1. DjOnline
    20.08.2018 22:47

    >>В какой-то момент я посмотрел на процесс Gmail с помощью vmmap и заметил, что процесс Gmail занимает немало памяти (361 836 КБ)
    С грустью вспомнил первый пень и 32Mb, на которых даже летали яркие красочные Worms Armageddon, которые в разы сложнее всего лишь почтового клиента.


  1. OnelaW
    22.08.2018 13:10

    Мда.
    Помнится тут на хабре был очень правильный совет погромистам, разрабатывать и тестировать приложение и интерфейсы для любой аппаратной конфигурации на которой может додуматься запустить пользователь.