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

Conditional indexing. Оптимизируем процесс полнотекстового поиска - 1

В этой статье я хочу поговорить про интеграцию Apache Lucene и Hibernate Search. Если быть более точным, то про один из механизмов Hibernate Search, который может здорово увеличить производительность на проекте с полнотекстовым поиском.
Читать полностью »

image

Это довольно вольный перевод статьи, которая попалась мне на просторах интернета. Её автор — TJ VanToll. Он уже много лет занимает веб-разработкой и, в частности, оптимизацией сайтов для большей производительности на мобильных телефонах. Под катом рассмотрены несколько способов оптимизации, а так же приведены результаты тестирования на различных устройствах.
Читать полностью »

Конкурентный рынок мобильных приложений Европы и США стабильно растет, а значит, растут и расходы на привлечение новых пользователей. Естественно, что в этой ситуации в центре внимания оказываются самые быстрорастущие игроки мирового рынка мобильных технологий: Китай, Юго-Восточная Азия, Латинская Америка, Россия, Восточная Европа, Ближний Восток и Южная Африка.

Один из наиболее интересных рынков для экспансии – Бразилия. Однако, чтобы завовевать его, необходимо понимать тонкости процесса локализации для этой страны. Мы в Alconost, например, часто сталкиваемся с тем, что разработчики выходят на бразильский рынок с европейской португальской версией продукта или приглашают европейских португальских переводчиков переводить тексты, предназначенные для бразильских пользователей. Так что когда мы нашли дельную статью об особенностях локализации для бразильского рынка, то поспешили перевести ее на русский.

Локализация для Бразилии: советы и рекомендации - 1
Читать полностью »

Потоки ввода-вывода в стандартной библиотеке C++ просты в использовании, типобезопасны, устойчивы к утечке ресурсов, и позволяют простую обработку ошибок. Однако, за ними закрепилась репутация «медленных». Этому есть несколько причин, таких как широкое использование динамической аллокации и виртуальных функций. Вообще, потоки — одна из самых древних частей STL (они начали использоваться примерно в 1988 году), и многие решения в них сейчас воспринимаются как «спорные». Тем не менее, они широко используются, особенно когда надо написать какую-то простую программу, работающую с текстовыми данными.

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

Сегодня в комментариях у посту возникло обсуждение о медленности iostreams. В частности, freopen пишет

Забавно смотреть на ваши оптимизации, расположенные по соседству со считыванием через cin :)

а aesamson даёт такую рекомендацию

Можно заменить на getchar_unlocked() для *nix или getchar() для всех остальных.
getchar_unlocked > getchar > scanf > cin, где ">" означает быстрее.

В этом посте я развею и подтвержу некоторые мифы и дам пару рекомендаций.
Читать полностью »

В наше время скорость интернета довольно высока. Казалось бы, можно забыть о тех временах, когда нам приходилось ждать по 20-30 (а то и больше) секунд, чтобы веб-страница загрузилась и отобразилась на экране — теперь мы ждём отрисовки страницы в среднем около одной-двух секунд. Однако не стоит забывать, что значительная часть юзеров заходит на ваш сайт с мобильных устройств, на которых связь не всегда стабильна. В связи с этим будет совсем не лишним уделить немного внимания оптимизации вашего кода.

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

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

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

Известный специалист по серверной и клиентской оптимизации, соавтор WebRTC, автор книги "High Perfomance Browser Networking" Илья Григорик из Google опубликовал презентацию “HTTP/2 all the things!”, в которой объясняет, как следует настраивать серверную часть под HTTP 2.0, чтобы повысить скорость загрузки страниц и уменьшить latency, по сравнению с HTTP 1.1.

Илья Григорик о внедрении HTTP 2
Режим Connection View в браузере показывает загрузку элементов заглавной страницы Yahoo.com в HTTP 1.1

Илья начинает с того, что для современных сайтов бóльшая часть задержек приходится на ожидание загрузки ресурсов, при этом полоса пропускания не является ограничивающим фактором (синим цветом на диаграмме Connection View). По статистике, для загрузки средней веб-страницы браузер делает 78 запросов к 12 различным хостам (общий размер загружаемых файлов 1232 КБ).
Читать полностью »

Я неоднократно убеждался в том, что рынок в некоторых его сферах представляет собой довольно растяжимую субстанцию. Казалось бы, столько предложений, что хватает для удовлетворения любого спроса, но нет – появляются все новые и новые игроки, которые умудряются в давно обжитом сегменте найти свою нишу и успешно в ней работать. Говорящий тому пример – лендинги. Сегодня даже пасечники-социофобы и таджикские строительные бригады далекие от интернета предприниматели осознают, что без грамотного лендинга, дающего высокую конверсию, которая отвечает за лидогенерацию – ну просто никуда.

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

Пасечники и строители могут не понимать значение этих терминов, но нутром чуют, без всего этого в современном мире им не выжить. Хлеборобы же и огородники по своему опыту знают о важности посадочных работ. А вот на жителей Хабра комбинация этих слов обычно производит прямо противоположное действие — только ее здесь увидев, большинство, влепив размашистый минус и даже не заглянув под кат, уходит читать что-нибудь забористое о том, как кодить на Java/c++/Python. Но не спешите делать скоропалительные выводы.

Дисклэймер: Фривольный тон в отношении представителей ряда почетных профессий, не имеющих отношения к IT, просьба рассматривать исключительно как средство художественного выражения, использованное ради более доходчивой расстановки всех точек над i.Читать полностью »

Модель ценообразования для SaaS: больше денег – больше проблем

Здравствуй, читатели!

Сегодня хотим поделиться с вами переводной статьей, автор которой Lincoln Murphy — один из гуру западного рынка SaaS. С 2006-го года он помог более чем 300 компаниям ускорить их рост и развитие через оптимизацию жизненного цикла клиента, от его завоевания до удержания. Статья посвящена очень важному вопросу — выбору политики ценообразования, которая помогала бы с каждого клиента получить именно такой доход, который он реально готов заплатить за ваш продукт. Итак, поехали!

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

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

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

image

Предлагаю вашему вниманию первую часть перевода книги «Mature optimization» Карлоса Буэно о принципах оптимизации высоконагруженных проектов.

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

Книгу стоит прочесть, если вы:

1. Хотите повысить производительность своего проекта, но не знаете с чего начать.
2. Хотите повысить производительность своего проекта, но боитесь все сломать.
3. Не знаете о подводных камнях оптимизации производительности.
4. Давно хотели настроить мониторинг проекта, но не уверены что именно стоит мониторить.
5. У вас есть система мониторинга, но она не сообщает о проблемах заранее.

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


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