Рубрика «оптимизация» - 45

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

Всегда задавался вопросом — почему Basic настолько непопулярен в среде отечественных программистов, в то время, как на Западе он имеет значительное распространение. Закрадывалось подозрение, что у нас, на просторах бывшего СССР, все программисты — челябинцы, и пишут прямо на машинном коде, так что писать на таком высокоуровневом языке как Бейсик, у них не получается в силу отсутствия иных клавиш, кроме 1 и 0.

Читать полностью »

Песочница для шрифтов

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

  • Windows XP: 133
  • Windows Vista: 191
  • Windows 7: 235
  • Windows 8: 400 +

Что бы избежать головной боли от перелистывания всех шрифтов, с целью оптимизации рабочего процесса существует множество менеджеров, в большинстве своем они платные, имеют специфические UI и очень редко обновляются. Ниже я сделал подборку 5-ти лучших платных и бесплатных приложений:
Читать полностью »

Зачастую в суровой российской реальности количество компьютеров в офисных центрах превышает запланированное количество в 3-4 раза. В итоге серверные перегружены, системы охлаждения не особо справляются, а о соблюдении норм пожарной безопасности можно только мечтать. А теперь представьте всё это в масштабах ЦОДа…

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

Следуя потребностям рынка, компания представила в том числе и в России новые серверные шасси и модули PowerEdge C8000.
image

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

В рамках рабочих задач недавно мною было проведено небольшое исследование на тему целесообразности использования опции prefetchCount при работе с брокером сообщений RabbitMQ.
Хочу поделиться этим материалом в виде слайдов и комментариев к ним.

Тесты проводились на конкретном проекте, но в целом они справедливы для большинства случаев, где обработка сообщений (выполнение задач) занимает хоть сколько-то существенное время (при обработке менее 1000 сообщений в секунду).

* на слайдах вместо слова «подписчик» используется «консумер», в комментариях для единообразия тоже
* рассматривается одна очередь с пятью консумерами (C1..C5)

Идеальные условия

Оптимизация обработки сообщений в RabbitMQ
Читать полностью »

В рамках рабочих задач недавно мною было проведено небольшое исследование на тему целесообразности использования опции prefetchCount при работе с брокером сообщений RabbitMQ.
Хочу поделиться этим материалом в виде слайдов и комментариев к ним.

Тесты проводились на конкретном проекте, но в целом они справедливы для большинства случаев, где обработка сообщений (выполнение задач) занимает хоть сколько-то существенное время (при обработке менее 1000 сообщений в секунду).

* на слайдах вместо слова «подписчик» используется «консумер», в комментариях для единообразия тоже
* рассматривается одна очередь с пятью консумерами (C1..C5)

Идеальные условия

Оптимизация обработки сообщений RabbitMQ
Читать полностью »

Оптимизация размещения купюр в банкоматах Внутри у среднего банкомата лежит от 1 до 3 миллионов рублей. Они разложены по 4 кассетам, в каждой из которых – купюры своего номинала. Замена кассет похожа на замену картриджей в принтере: модуль вынимается (и неважно, сколько там осталось денег — инкассаторы этого даже не знают по правилам безопасности), а на его место вставляется другой модуль точно по стрелке, указывающей, какой стороной и как это делать.

Инкассация — дорогая и достаточно рискованная с точки зрения безопасности процедура, поэтому любое обслуживание банкомата обходится довольно дорого. Естественное желание банка – уменьшить количество инкассаций. Получается классическая задача распределения ресурсов: с одной стороны, в банкомате всегда должны быть деньги для клиентов, с другой — в идеале банк хочет, чтобы ровно перед инкассацией из ящика уходила последняя купюра. Читать полностью »

Я удивлен, что эта техника упоминалась на Хабре только один раз и вскользь — если верить поиску, конечно.
Меня не покидает ощущение, что на самом деле все про это знают, но я всё же расскажу.

Суть в том, что браузеру можно подсказать, какую страницу пользователь откроет следующей — и он начнет её загружать заранее.

Делается это несложно — нужно всего-то добавить пару мета-тегов в head:

<link rel="prefetch" href="NEXT PAGE URI" />
<link rel="prerender" href="NEXT PAGE URI" />

Теперь подробнее про ограничения и нюансы.

Читать полностью »

ISN Digest #0. Использование сенсоров и оптимизация энергопотребления в приложениях под Windows 8
Предлагаем вниманию хабраобщественности новую рубрику в блоге Intel — ISN Digest. В этой рубрике мы будем публиковать ссылки и краткие аннотации на документы, появляющиеся в огромной библиотеке документов для разработчиков на сайте Intel. Подборки ссылок мы будем стараться делать тематическими, посвященными одной или нескольким близким темам.
В первом дайджесте мы будем говорить о программировании приложений под Windows 8 Metro, а точнее — об использовании сенсоров и оптимизации энергопотребления.
Читать полностью »

Прошлой осенью я публиковал на Хабре пост Пять способов ускорить запросы API Facebook на практике, который оказался неплохим сборником рецептов. За это время Facebook API сильно изменился, став еще лучше. Теперь я редко встречаю задачи, с которыми я бы не смог справиться за один HTTP запрос к API. А все благодаря новым возможностям, о которых я и расскажу сейчас.

image

Вот какие способы были в прошлый раз:

  1. Запрашиваем только необходимые поля
    me?fields=id,name,birthday
  2. Запрашиваем данные нескольких объектов в одном запросе
    ?ids=4,501012028
  3. Используем фильтрацию и пагинацию
    me/friends?limit=10&offset=10
  4. Используем запросы FQL
    fql?q=SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
  5. Отправляем Batch Request с несколькими запросами
    batch=[{«method»:«GET», «relative_url»:«me»},{«method»:«GET», «relative_url»:«me/friends?limit=50»}]

Читать полностью »

Очень маленький пост о том, что выбрать: генератор или класс, когда реализация возможна обеими способами.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js