• Here be dragons: Управление памятью в Windows как оно есть [2/3]


      Каталог:
      Один
      Два
      Три

      Оказывается длинные опусы нужно разбивать. А я то думал «многосерийные» топики публикуют исключительно для зарабатывания рейтинга :-)

      Продолжу с места в карьер, так как где разбилось — там разбилось, а писать дополнительные введения к каждой серии выше моих сил.
      Читать дальше →
    • Here be dragons: Управление памятью в Windows как оно есть [1/3]


        Каталог:
        Один
        Два
        Три

        Менеджер памяти (и связанные с ним вопросы контроллера кеша, менеджера ввода/вывода и пр) — одна из вещей, в которой (наряду с медициной и политикой) «разбираются все». Но даже люди «изучившие винду досконально» нет-нет, да и начинают писать чепуху вроде (не говоря уже о другой чепухе, написанной там же):
        Грамотная работа с памятью!!! За все время использования у меня своп файл не увеличился ни на Килобайт. По этому Фаерфокс с 10-20 окнами сворачивается / разворачивается в/из трея как пуля. Такого эффекта я на винде добивался с отключенным свопом и с переносом tmp файлов на RAM диск.

        Или к примеру μTorrent — у меня нет никаких оснований сомневаться в компетентности его авторов, но вот про работу памяти в Windows они со всей очевидностью знают мало. Не забываем и товарищей, производящих софт для слежения за производительностью и не имеющих ни малейшего понятия об управлении памятью в Windows (и поднявших по этому поводу истерику на пол интернета, на Ars-е даже был разбор полетов). Но самое потрясающее, что я видел всвязи с управлением памятью — это совет переместить pagefile на RAM-диск:
        Из моих трех гигабайт под RAM disk был выделен один (на тот момент, когда на лаптопе еще была установлена XP), на котором я создал своп на 768МБ ...

        Цель данной статьи — не полное описание работы менеджера памяти (не хватит ни места ни опыта), а попытка пролить хоть немного света на темное царство мифов и суеверий, окружающих вопросы управления памятью в Windows.
        Читать дальше →
      • Here be dragons: Управление памятью в Windows как оно есть [3/3]


          Каталог:
          Один
          Два
          Три

          μTorrent


          Это, пожалуй, самая забавная часть. При очевидно высоких навыках программирования, авторы либо не читали, либо не поняли вот этот документ. Вот что происходит с дефолтными настройками:
          Читать дальше →
        • Ускорение загрузки Windows for fun and profit

            image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

            Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
            Под катом много однообразных картинок и немножко унылого текста
          • Когда Windows 7 просыпается сам

              После установки Windows 7 RTM стал сталкиваться с тем, что после того как отправляю его в sleep (hibernate) на ночь, вижу на утро его проснувшимся. Я поборол данную проблему в несколько шагов. Вообще, данное руководство относится не только к Windows 7, а может относиться и к другим версиям Windows.
              Читать дальше →
            • Все «секреты» Windows 7

              • Перевод
              По многочисленным просьбам — перевод статьи «The Bumper List of Windows 7 Secrets».

              Здесь пропущено вступление о том как здорово, что Windows 7 вышла в свет, которое все равно все пропустят и будут читать сами «секреты».

              1. Управление окнами


              Вы, наверное, уже знаете, что Windows 7 делает работу с окнами во многом проще. Окно можно «прикрепить» к левой или правой половине экрана просто придвинув к соответствующему краю, а так же окно можно разворачивать/восcтанавливать по вертикали двойным щелчком по нижней границе окна. Но вот чего вы, наверное, не знаете, так это того, что все эти действия доступны через горячие клавиши.
              • Win+Влево и Win+Вправо — прикрепить окно
              • Win+Вверх и Win+Вниз — разворачивает и восстанавливает/сворачивает окно
              • Win+Shift+Вверх и Win+Shift+Вниз — разворачивает и восстанавливает окно по вертикали
              Но это далеко не всё
            • Ускоряем логин через SSH в Ubuntu в 100 раз

                Долгое время я мучился ужасно медленным удаленным логином на свои Ubuntu сервера (все 2 ). Ужасно медленно в данном случае — 2-3 секунды. Не то чтобы это было совсем фатально, но когда логин через ключ — хочется чтобы все работало мгновенно — в конце концов, у нас не 486SX.

                Длительное гугление приводило только к стандартным решениям:
                1. UseDNS no в /etc/ssh/sshd_config — ускоряет логин в случае тормозного DNS. В моём случае стоял локальный кеширующий DNS, потому и так все было быстро.
                2. Принудительное указание IPv4 в SSH клиенте — особо не помогло, видимо не у всех тормозит
                И на askubuntu.com вопрос c bounty уныло провисел долгие недели без ответа…

                Читать дальше →
              • Знаешь ли ты JAVA, %username%?

                JAVA Evil EditionНедавно я сдавал экзамен Oracle Certified Professional Java Programmer (бывший Sun Certified), и за время подготовки прорешал огромное количество различных задачек. Отдельные задачки по джаве иногда появляются на хабре и вызывают немалый интерес, поэтому я решил поделиться накопленным и сделать небольшую подборку.

                Итак, ниже представлен десяток наиболее, на мой взгляд, интересных задач по Java SE из более чем 1000, проработанных мной. Сложность варьируется от средней до ооооооочень сложной. Решение большинства задач практически не требует знания API, достаточно логики и фундаментальных основ Java.

                К слову, сложность экзамена Oracle Certified Professional Java Programmer гораздо ниже чем сложность данного теста, поэтому все, кто правильно ответит хотя бы на половину этих вопросов, может смело сдавать этот экзамен без всякой подготовки.

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

                ВНИМАНИЕ: во второй половине статьи — ответы и подробные пояснения по соответствующим нюансам JAVA.

                Читать дальше →
              • Обратная сторона луны

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

                  Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

                  А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

                  А я скажу как бы ни так!

                  В данной статье мы рассмотрим:
                  • структура организации размещения объектов в памяти
                  • CLR 4.5 Background Server GC
                  • правильная настройка сборщика мусора
                  • эффективный апгрейд приложений до .NET 4.0+
                  • правильное ручное управление памятью

                  Читать дальше →
                • Постигаем Git

                  • Перевод
                  От переводчика: в этой статье нет описания команд git, она подразумевает, что вы уже знакомы с ним. Здесь описывается вполне здравый, на мой взгляд, подход к содержанию публичной истории в чистоте и порядке.

                  Если вы не понимаете, что побудило сделать git именно таким, то вас ждут страдания. Используя множество флагов (--flag), вы сможете заставить git работать так, как по вашему мнению он должен работать, вместо того, чтобы работать так, как git того хочет. Это как забивать гвозди отверткой. Работа делается, но хуже, медленнее, да и отвертка портится.
                  Читать дальше →