Обновить
51

Погромист

15
Подписчики
Отправить сообщение
Я не так уж и много поменял — задача была не довести до идеала, а чтобы работало. Немного БД, немного обход, убрал странное, вот и все.

На самом-то деле, как и в любом проекте с длинной историей, там много чего было понаверчено, описанный кусочек — хорошо если 0.1% кода.
Все остальное было скучно и неинтересно, даже и писать-то не о чем. Исправили баги номер… переделали синхронизацию… исправили то то и это… добавили из фичреквеста пункты…

Обычные будни. Кому интересно читать про «как поправили CSS чтобы могучая закладка в 2 строчки текста не разваливала пол-страницы, баг нумер такой-то»?

А вот про особенности оптимизации — по крайней мере есть о чем рассказать.
Видимо индусы так и делали, а тут раз! И надо повысить не в два, а в сто, какой уж тут отпуск ;-)
Емнип URL encoding стандартный никто никуда не разворачивал, так и был %20%2E-бла-бла.
Так если б я как та бангалорская деревушка — полгодика бы по-повышал производительность с 1 страницы аж до двух — мне бы тоже платили плошку риса в день, не?

Я ведь не только рис ем, да и местный direktsaft тоже недешев. Вот и приходится отжиматься на совесть, а не с 9 до 6 с перерывом на бассейн и трехчасовой ланч.

Мне кстати некоторые заказчики так и говорят — ну ты Виктор и знаешь толк во вкусной и (не)полезной пище — то лапшу тебе японскую, то сок с кокосовым молоком тайский, а если стейк так рибаи! А я им — да полноте, швайнебратен — вот наш выбор!!!, а рибаи да лапша — это я так, эстетствую ;-)
Да, я лентяй, я уже признавался ;-)

Обычно картинки беру именно там, не надо рисовать самому и с лицензиями порядок.

Вот поясню ход моих мыслей, почему взял именно эти.

1. Ага — ускоряем производительность, то есть устраняем узкие места, или решаем задачу «в одну трубу втекает, в другую вытекает»). Оно.

2. Приступаем к вскрытию — то есть проникаем — проникает кто? спецназ — кто там самый был? аватар.

3. Берем в руки профилировщик — давно шашку в руки не брал — рыцарь — гладиатор.

4. Опасность — бомба (банально) — бережемся от — о! берегите спички от детей!

5. Что делал я — я кто? инженер — вот тебе кульман, расписался тут понимаешь!

6. Плохо — почему? последствия — нос разобьешь — какой пингвин отличный, как раз скользит и падает!

7. Снаряд — пушка (банально), подход — штанга, брутально. О, мультик вспомнил про Спортландию, странно что там лука не было. Точно — лук со снарядами перекликается, беру!

8. Святой Коннектий — святой — фольклор — фея. Опа! в стиле техно, отлично!

Ежик — означает храбрость (С) КВН
Вот уж чего не знаю того не знаю — приехало это именно в таком виде. Может напели заказчику о том как они ускорят по сравнению с (например) питоном, и не смогли?
Ничего если я?

IPv4 only
(\d(\d(\d)?)?\.\d(\d(\d)?)?\.\d(\d(\d)?)?\.\d(\d(\d)?)?)|(\h(\h)?\.\h(\h)?\.\h(\h)?\.\h(\h)?)
;-)
Напомнило

— Да в вашем Це два креста вообще плюсов нет!
— Вообще-то есть. Например, я нашел целых два прямо в названии.

;-)
Это как раз был именно он — VC++ ;-)
Я брал libxml2. У нее есть (были?) именно HTML Chunks.

/*
 * Summary: interface for an HTML 4.0 non-verifying parser
 * Description: this module implements an HTML 4.0 non-verifying parser
 *              with API compatible with the XML parser ones. It should
 *              be able to parse "real world" HTML, even if severely
 *              broken from a specification point of view.
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Daniel Veillard
 */

(разводит руками) ядро линукса что-ли в пример привести, какую-нибудь ветку 2.2, она попроще?

А на С++ я с ходу и не подскажу, куда так смотреть можно. WebCore разве что, или Qt на ночь перечитывать.
Там подавляющее большинство const char*, так что — вряд ли.

А reserve() помогло бы в весьма ограниченном числе мест, т..к. фонтан пересоздаваемых строк никак бы не уменьшился.

Вот для иллюстрации,

class URL
{
public:
	URL(const URL* context, const char* spec);
	URL(const char* spec);
...

private:
	bool parseURL(const char* spec, int start, int limit);
	...

	std::string protocol;
	std::string host;
	std::string domainSuffix;
	int port;
	std::string file;
	std::string query;
	std::string authority;
	std::string path;
	std::string userInfo;
	std::string ref;
};

Хотя по факту достаточно хранить саму строчку и пачку указателей на ее части.
Профилирование вещь такая — своеобразная. С ним надо внимательно.

Я как на результаты с локом в msvcrt посмотрел — была первая мысль «а не стащить ли с линукса lock-free memory allocator». Хорошо что удержался от этой (в данном случае) глупости и стал дальше смотреть, а то можно было бы сурово засесть за полировку ногтей вместо решения проблемы.

По факту я тогда за БД и взялся, чтобы мозги прочистились и результаты профилирования сложились бы в какую-то разумную картинку. Помогло — наутро сообразил, что лечить надо не симптомы.

А то статья бы начиналась «и после трех месяцев тупизны и полировки ненужного я догадался посмотреть в профайлере не только первых пять позиций» ;-)
Можно и за $200 — если хотите рискнуть и купить «в случае чего» еще один за $200 через два года.

Хотя как неоднократно показыала практика (см. MS Vista) еще вчера купленный ящик за $500 устаревал так же быстро как и за $200, ибо что на 512М ОЗУ что на 1Гб — виста не шевелилась. А ХР с офисом летала на обоих.

Выйдет к примеру 2015м году Windows 10 с minimum requirements 16GB RAM + VideoCard DX14 compatible, и привет. А тут за 2Гб + HD4000 «по пятьсотбаков уже уплочено» три года назад, удачное будет вложение, да.
Ну, мне как потребителю надо собственно железка, а не оплачивать «в нагрузку» две цены аппарата «на маркетинг».
(недоумевает) то есть для секретарши просто необходимо купить professional-strength PCs with stable, flexible platforms, aggressive security, & easy expandability?

С предустановленными офисом, акробатом (не ридером) и фотошопом?

Допустим.

В этом случае (рекомендованный m72e vs 3010) — $479 vs $522 соответственно в пользу леновы (за те же ТТХ).

И таки в обоих случаях это знатно меньше заявленных $1k ;-)
Ммм, Dell и качество распрощались друг с другом давным-давно, лет 7-8 назад, с тех пор как заменили свою схемотехнику на стандартную асусовую.

Вот, к примеру берем не менее брендированное изделие межделмаша. Overkill по всем ТТХ + 20" монитор included = $479.

Сравните это с делловым предложением (2Гб ОЗУ, Win7 32bit!) без монитора за $499. Назвать это предложение жлобским — ничего не сказать. Деллы даже нашли DVD-ROM (на свалке, не иначе). И опция — заменим на DVD+RW за… полную стоимость привода! Хорошо еще не попросили доплатить за утилизацию старья, всунутого по умолчанию.

Далее цирк — выбираем железки прямо на сайте из раздела «рекомендуем», добавляем монитор за $250 (дешеле нету), отказываемся от всех опций с софтом. Итого — $1284. Оочень дешевое предложение, да ;-)

Вообще, сколько сталкивался, столько раз был в шоке. Бренды (делл и хапэ) ломят безумные цены уже много лет, и за эти фантастические (в разы выше рыночных!) цены продают что угодно, только не качество. Менее сбалансированные железки только китайцы в подвале собирать умеют. Причем этот тренд — он ведь минимум с 1995го не менялся.
Кстати говоря, гугель купил андроид со сдачи, это был вполне себе такой стартап, если мне мой склероз не изменяет.
Так я ж про себя и говорю — и что именно беру, и почему. Хипстеры меня не трогают абсолютно, на них не покушаюсь, ни-ни. Игрушки это отдельно. Представьте, у меня даже angry birds до сих пор ни на одном устройстве нет ;-)

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

Глянец — любой — очень хорошо отражает люминисцентные лампы. Это реально бесит — приходится активно вращать головой чтобы блики не попадали на сейчас читаемый текст мелким шрифтом.

И наличие еще более ужасного глянца у сони — не извиняет эппла никак. Тем более что в про — есть таки антибликовое покрытие, почему его нет у air — знает теперь только Тим Кук.

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Дата рождения
Зарегистрирован
Активность