На Хабре недавно была опубликована статья «Перевод времени в деньги и обратно». В дальнейшем я буду именовать её исходной, ибо отталкиваться буду в основном от высказанных там идей. Так вот, в той статье есть много моментов, которые хочется поправить. Данная статья задумывалась как статья-ответ.
Читать полностью »
Рубрика «оптимизация» - 33
Время — деньги =?
2015-03-13 в 9:34, admin, рубрики: Алгоритмы, время, деньги, жизнь, инфляция, математика, оптимизация, экономияКак мы оптимизировали наши ролики на Youtube и что из этого вышло
2015-03-13 в 5:16, admin, рубрики: Alconost, growth hacking, Nitro, YouTube, анимированные логотипы, Блог компании Alconost, Inc., видео, интернет-маркетинг, ключевые слова, контент-маркетинг, оптимизация, Повышение конверсии, роликиКак-то мы заметили, что один из наших роликов не только активно собирает просмотры, но и добросовестно приносит нам новые заказы на анимации логотипов. Вот он, знакомьтесь:
И это при том, что мы лишь разместили ролик на нашем канале в Youtube и больше ничего с ним не делали. А ведь стоило бы, пожалуй.
Вот мы и решили оптимизировать этот и другие наши ролики с анимацией логотипов и посмотреть, что из этого выйдет.
Читать полностью »
Оптимизация методов ToArray и ToList путём предоставления количества элементов
2015-03-11 в 12:39, admin, рубрики: .net, C#, linq, оптимизация, Программирование Методы расширения ToArray и ToList — удобный способ быстро преобразовать перечисляемую последовательность (например, Linq-запрос) в массив или в список. Однако, в них есть кое-что беспокоящее меня: оба эти метода очень неэффективны, если они не знают количество элементов в последовательности (что почти всегда происходит, когда вы используете их в Linq-запросе). Давайте сперва рассмотрим метод ToArray (ToList имеет несколько отличий, но принцип практически такой же).
Читать полностью »
Перевод времени в деньги и обратно
2015-03-09 в 15:30, admin, рубрики: Алгоритмы, время, деньги, жизнь, инфляция, математика, оптимизация, экономияОсенью 2014 мне катастрофически не хватало времени и ушёл в глубокие минуса по кредитам. Тогда у меня и появилась задача: как мне научиться экономить время и деньги. Ответ оказался прост: нужно экономить время и деньги одновременно. Ведь часто бывает, что экономя деньги — тратишь много времени, или экономя время — тратишь деньги. Тогда и понадобилось переводить время в деньги и обратно, чтобы оптимизировать их потребление.
Уменьшение накладных расходов для утилит на golang
2015-02-23 в 19:23, admin, рубрики: Go, golang, overhead, накладные расходы, оптимизация, Программирование, системное администрированиеЦель работы — сократить накладные расходы на хранение большого количества утилит, написанных на golang.
Один из побочных эффектов статической компиляции golang — относительно большие накладные расходы на хранение рантайма и всех используемых библиотек внутри каждого исполняемого файла. Например небольшая утилитка, которая только и делает что обращается через сеть к серверу и выполняет простые полученные команды — весит 5.5Мб.
Когда такая утилитка одна — это в современных условиях это еще не страшно. Когда утилиты накапливаются и их становится уже несколько десятков или сотен — чисто по-человечески становится жалко сотен мегабайтов, утекающих «вникуда».
Для решения этой проблемы я написал библиотеку multiex, которой и делюсь с сообществом. С его помощью можно объединить несколько программ в один исполняемый файл с минимальными изменениями внутри кода программ и без изменения внешнего поведения. Мысль была взята у busybox — все программы компилируются в один файл, а выполняемый код выбирается при запуске, исходя из имени запускаемого файла.
Разбор вызовов функций в PHP
2015-02-19 в 14:07, admin, рубрики: php, Блог компании Mail.Ru Group, Веб-разработка, высокая производительность, оптимизация, Совершенный код, срыв покровов, метки: phpЭтот пост посвящён оптимизации PHP с помощью профайлера Blackfire в PHP-скрипте. Нижеприведённый текст является подробным техническим объяснением статьи в блоге Blackfire.
Обычно применяется метод strlen:
if (strlen($name) > 49) {
...
}
Однако такой вариант примерно на 20% медленнее этого:
if (isset($name[49])) {
...
}
Выглядит неплохо. Наверняка вы уже собрались открыть ваши исходники и заменить все вызовы strlen() на isset(). Но если внимательно прочитать оригинальную статью, то можно заметить, что причина 20-процентной разницы в производительности — многократные вызовы strlen(), порядка 60-80 тысяч итераций.
Читать полностью »
Нестандартная оптимизация проектов на PHP
2015-02-18 в 15:24, admin, рубрики: php, оптимизация, память, Серверная оптимизация, метки: phpВ данной публикации хочу рассказать о том, как нетрадиционными методами мы смогли снизить нагрузку на серверы и ускорить время обработки страницы в несколько раз.
Традиционные методы, думаю, всем известны:
- Оптимизация SQL-запросов;
- Поиск и исправление узких мест;
- Переход на Memcache для часто используемых данных;
- Установка APC, XCache и подобных;
- Клиентская оптимизация: CSS спрайты и т.п.
В нашем же проекте всё это было сделано, но при этом проблема скорости обработки страниц сохранялась. Средняя скорость обработки страницы была в районе 500мс. В один прекрасный момент пришла идея проанализировать, какие ресурсы есть, и на что они могут тратиться.
Читать полностью »
5 недопустимых ошибок при сборе отзывов о продукте
2015-02-18 в 7:32, admin, рубрики: Alconost, feedback, UX, Блог компании Alconost, Inc., веб-аналитика, Исследования и прогнозы в IT, менеджмент проектов, обратная связь, опрос, оптимизация, отзывы, пользователи, Развитие стартапа, Управление продуктом, управление проектами, фичи
В начале работы над проектом или на этапе радикальных изменений в продукте трудно удержаться от искушения опросить всех своих пользователей, чтобы определиться с положением дел. Обычно это ошибка. Вообще-то есть целый ряд общих ошибок, которые происходят снова и снова. Мы в Alconost перевели для вас пять подсказок по сбору отзывов о продукте.
Читать полностью »
Прикладная практика оптимизации и немного истории
2015-02-17 в 15:43, admin, рубрики: Алгоритмы, идентификация модели, математика, оптимизация, прикладная математика, Программирование «Тысячу долларов за один удар кувалдой?!» — вскричал удивлённый, но счастливый (и спасённый решением проблемы) инженер паровой машины. «Нет, удар стоит 1$, остальное — за знание куда, когда и как сильно ударить» — ответил старый мастер.
Типа эпиграфа.
В патентовании есть такая категория изобретений, когда патентуется не то, что человек/коллектив придумал (оно уже достаточно давно известно, например, клей), и не новый способ достижения актуальной цели (например, герметизация раны от инфекции). А патентуется, например, применение широко известного вещества в совершенно новом (для данного вещества), но тоже хорошо и давно известном для достижения цели применении. «А давайте попробуем заклеить рану клеем БФ-6? О! А он, оказывается, имеет бактерицидные свойства..., и рана под ним дышит..., и быстрее заживает! Надо застолбить и применять!»
В прикладной математике есть инструменты, грамотное применение которых позволяет решать оч-ч-чень большой круг самых различных задач. Об этом я и хочу вам рассказать. Может кого натолкну на поиски своего нетривиального применения успешно освоенных алгоритмов или приёмов/программ. Здесь будет мало отсылок на строгие математические инструменты или соотношения, больше качественный разбор преимуществ и приложений численного метода (методов), сыгравшего в моей жизни большую роль и ставшего основой решения важных профессиональных задач.
Читать полностью »
Как сделаны фоны в Homeworld2 изнутри
2015-02-12 в 16:21, admin, рубрики: game development, Homeworld, графика, игра, космос, оптимизация, Работа с анимацией и 3D-графикой, метки: HomeworldЭта статья является переводом сразу двух статей от Simon Schreibt. Обе статьи на одну тему и являются взаимодополняющими. Не пугайтесь того, что в начале все набрано большими буквами, это стилистика автора и я постарался максимально её сохранить.
То, что вы видите тут
это сносшибательные фоны
одной из наиболее прекрасных научно-фантастических игр.