Современная операционная система: что надо знать разработчику

Автор: admin от 23-09-2016, 19:00, посмотрело: 282

Александр Крижановский (NatSys Lab.)


Современная операционная система: что надо знать разработчику

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.


Современная операционная система: что надо знать разработчику

Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор графиков, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.

Категория: Системное администрирование, Linux

 

Инструменты Intel для оптимизации приложений и задача о течениях в пористых средах

Автор: admin от 23-09-2016, 19:00, посмотрело: 290

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

Оптимизации, которые влияют на скорость вычислений при использовании любого числа потоков, сводятся к учёту в коде особенностей процессорных архитектур, наборов инструкций, к поиску наиболее рациональных способов работы с разными видами памяти. Помощь в подобной оптимизации способен оказать, например, подход к исследованию производительности методом «сверху вниз» с использованием низкоуровневых данных о системных событиях, которые преобразуются в доступные для анализа и практического применения высокоуровневые показатели.

Инструменты Intel для оптимизации приложений и задача о течениях в пористых средах


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

Категория: Программирование

 

Как выжать максимум из минификации кода

Автор: admin от 23-09-2016, 17:50, посмотрело: 175

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


// просто сравните длину строк
this.this.this.this.
var s=this;s.s.s.s.

Я использовал этот и некоторые другие упоротые способы для участия в конкурсе js13kGames, цель которого — написать игру, размер которой не превысит 13 килобайт.


Как выжать максимум из минификации кода

Игра почти готова, осталось всего-то пару дней не спать...


Мы любим сжимать!

Категория: Программирование, Веб-разработка, Game Development

 

Структуры данных для самых маленьких

Автор: admin от 23-09-2016, 16:50, посмотрело: 184

James Kyle как-то раз взял и написал пост про структуры данных, добавив их реализацию на javascript. А я взял и перевёл.

Дисклеймер: в посте много ascii-графики. Не стоит его читать с мобильного устройства — вас разочарует форматирование текста.

Структуры данных для самых маленьких

Категория: Программирование » Веб-разработка

 

Y Combinator: девушки-программистки отвечают на деликатные вопросы

Автор: admin от 23-09-2016, 16:25, посмотрело: 328

Мы (Y Combinator) собрали группу женщин-инженеров с многолетним опытом работы, чтобы попытаться провести совместный эксперимент под названием “Спросите женщину-инженера”.

Y Combinator: девушки-программистки отвечают на деликатные вопросы

Вопрос


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

Джин


Я отвечу по своему опыту и опыту моих детей. Я брала пару факультативов по программированию в средней школе, это было еще в начале 1980-х. Мы писали на APL (О, да!) и BASIC. Я выбрала их, потому что мой брат за несколько лет до этого также выбрал их и принёс домой различные материалы. Тогда мне было 10 лет, и я подумала “Круто!” Я быстро поняла, что хороша в разработке. Мы с мужем оба разработчики ПО, так что от наших троих детей мы требовали пройти ту же школу и взять по крайней мере один класс программирования (полугодовой класс). Мы сказали им, что они не обязаны любить этот предмет или не обязаны быть в нём курты, но они скорее всего имеют генетическую предрасположенность к этому. И до сих пор двое из троих в CS-смежных областях. Третий же сейчас первокурсник и увлекается программированием.

Наша дочь брала полугодовой курс C ++, затем AP CS и была в команде по программированию в старшей школе (она была единственной девушкой). Ни одна из ее одноклассниц в школе не взяла класс программирования или похожего направления. Все они брали дополнительные классы физики, математики, химии и тому подобное, они считали, что будут хороши в любых естественных науках, но только не в технических. Одна её подруга всё же выбрала вводный класс по Python прошлой весной (на одном из первых курсов) по настоянию моей дочери. Эта девушка поняла, что ей не только нравится программирование, но и даётся оно ей легко и отлично получается. Сейчас она старается получить квалификацию CS minor в ее гуманитарном колледже. Если бы она только попробовала начать пораньше

Категория: Программирование, Веб-разработка

 

SObjectizer: проблема перегрузки агентов и средства борьбы с ней

Автор: admin от 23-09-2016, 16:05, посмотрело: 297

В предыдущих статьях мы несколько раз упоминали о такой проблеме, как перегрузка агентов. Что это такое? Чем это грозит? Как с этим бороться? Обо всем этом мы и поговорим сегодня.


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


Проблема усугубляется еще и тем, что взаимодействие посредством асинхронных сообщений и использование подхода fire-and-forget прямо таки провоцирует возникновение перегрузок (fire-and-forget – это когда агент A получает входящее сообщение M1, выполняет его обработку и отсылает исходящее сообщение M2 агенту B не заботясь о последствиях).

Категория: Программирование

 

Принципы реактивного программирования на примере простого RSS-агрегатора с использованием ReactiveX для Python

Автор: admin от 23-09-2016, 15:50, посмотрело: 305

Принципы реактивного программирования на примере простого RSS-агрегатора с использованием ReactiveX для Python

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

Категория: Программирование

 

Книга «Как пережить полный конец обеда, или безопасность в PHP». Часть 1

Автор: admin от 23-09-2016, 15:10, посмотрело: 286

Книга «Как пережить полный конец обеда, или безопасность в PHP». Часть 1
Big Five Part 3 by CrazyAsian1

Привет. Меня зовут Саша Баранник. В Mail.Ru Group я руковожу отделом веб-разработки, состоящим из 15 сотрудников. Мы научились создавать сайты для десятков миллионов пользователей и спокойно справляемся с несколькими миллионами дневной аудитории. Сам я занимаюсь веб-разработкой около 20 лет, и последние 15 лет по работе программировать приходится преимущественно на PHP. Хотя возможности языка и подход к разработке за это время сильно изменились, понимание основных уязвимостей и умение от них защититься остаются ключевыми навыками любого разработчика.

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

P. S. Книга длинная, поэтому перевод будет выкладываться несколькими статьями. Итак, приступим…

Категория: Программирование, Информационная безопасность

 

Лекция основателя Википедии Джимми Уэйлса в Яндексе

Автор: admin от 23-09-2016, 15:05, посмотрело: 265

14 сентября московский офис Яндекса посетил тот, кто раньше часто смотрел на вас со страниц Википедии, он же её основатель — Джимми Уэйлс. Знаменитый Джимбо выступил с лекцией «Свободные знания как основа современного общества». Мы публикуем полный текстовый перевод лекции и диалога со зрителями.





В Москве чудесно. Я приехал, чтобы лично и в онлайне пообщаться с российскими участниками сообщества «Викимедиа», а также со всеми остальными — широкой публикой, технологическим сообществом. Ещё, здесь, конечно, немало людей из Яндекса. Яндекс всегда был очень хорошим другом Википедии. Мы ценим это. Мы здесь в том числе для того, чтобы познакомить вас с лидерами местного сообщества и нашего представительства. Они готовы обсуждать сотрудничество, направления развития, идеи, способы совместной работы. Я хочу поблагодарить Владимира [Медейко] за то, что он помог организовать это мероприятие. Здорово быть здесь.

Категория: Компании » Яндекс

 

“Crysis” во всем мире через RDP-протокол

Автор: admin от 23-09-2016, 15:05, посмотрело: 321

“Crysis” во всем мире через RDP-протокол

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

Категория: Информационная безопасность

 
Назад Вперед