Для того чтобы проверить какой процесс сколько потребляет памяти и процессора в командной строке вводим
top
Вы получите постоянно обновляемый список процессов, упорядоченный по загрузке процессора.
Для того чтобы проверить какой процесс сколько потребляет памяти и процессора в командной строке вводим
top
Вы получите постоянно обновляемый список процессов, упорядоченный по загрузке процессора.
Если вы получаете ‘Invalid command ‘RewriteEngine» ошибку в логе ошибок сервера, включите RewriteEngine командой
sudo a2enmod rewrite
Если вы видите следующие ошибки в логе apache( /var/log/apache2/error.log )
Удалите расширение:
apt-get remove suphp*
Небольшая шпаргалка по типам данных
Как увеличить производительность тяжелого парсера контента, обрабатывающего несколько запросов в секунду? При такой производительности каждый такт на счету, и очень не хочется тратить время на простой в ожидании загрузки контента, в то время как можно было бы поработать с уже загрузившимся.
Хочу представить вашему вниманию малоизвестную, но очень полезную библиотеку parallelcurl, являющуюся надстройкой над мультипотоковым curl.
https://github.com/petewarden/ParallelCurl
В чем смысл: библиотека предоставляет простой интерфейс callback-функций для одновременной загрузки и обработки веб контента.
Подключаем библиотеку, создаем объект класса:
$parallelcurl = new ParallelCurl(10);
Аргумент — число потоков для одновременной загрузки.
Весь механизм работы очень похож на js callback’и.
Стартуем загрузку, можно в цикле:
$parallelcurl->startRequest('http://example.com', 'on_request_done', array('something'));
Можно стартовать хоть 1000 запросов одновременно. Они все складываются в очередь. Выполняется, скажем, 10 одновременно. Как только 1 выполнился, сразу же из очереди берется следующий, а для выполнившегося потока стартует callback функция, переданная параметром:
on_request_done($content, 'http://example.com', $ch, array('something));
Первый аргумент, который в нее передастся — контент получившейся страницы. Второй — обработанный URL, третий — поток, из которого можно вытаскивать информацию по соединению, и четвертый — массив значений, которые мы передали при вызове.
В основной ветке при этом можно работать как ни в чем ни бывало, никого не дожидаясь, а для того, чтобы дождаться выполнения всех запросов и callback’ов к ним, нужно выполнить:
$parallelcurl->finishAllRequests();
Вообще говоря, идея очень простая, и многие реализовывают этот велосипед руками, но всегда приятнее использовать уже готовые и проверенные решения.
Безусловно, многое нужно допилить под свои нужды, но как начальный каркас — очень рекомендую.
Для того чтобы исключить слово из регулярного выражения, или набор слов, или даже целое предложение, используем конструкцию:
((?!word1|word2).)*
Пример: получить все последовательности символов такие, которые начинаются с begin, заканчиваются end и не содержат ни слова word1, ни слова word2:
begin((?!word1|word2).)*end
Сегодня наткнулся на достаточно злой баг Internet Explorer 8 ранних билдов.
Суть в том что конструкция
if( windowObjects && windowObject.focus ){
windowObject.focus();
}
может ни с того ни с сего падать с ошибкой Member not found при попытке установить фокус на окне с открытым PDF документом. Подробнее тут: http://bytes.com/topic/javascript/answers/558302-member-not-found-error-when-opening-pdfs-new-window
Вообще поведение IE8 до фикса http://support.microsoft.com/kb/979954 очень и очень странное при работе с PDF в отдельном окне. Если вы загружаете PDF документ, окно с ним тут же меняет свойства. Объект все еще есть, но в то же время его нельзя закрыть из родительского, в него нельзя запостить форму, можно только изменить document.location, тем самым закрыв PDF и дальше работая с окошком как с обычным.
Таким образом, если хотим вернуть контроль надо окном — просто меняем document.location на заготовленную пустую страницу. По-моему это самый правильный вариант. Но есть и много других решений, например — через mod_rewrite не допускать прямого открытия pdf, а вместо этого делать редирект на pdf.html?sorce=file.pdf. Страничка pdf.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 25 March 2009), see www.w3.org">
<title></title>
</head>
<frameset>
<frame src="test.pdf">
</frameset>
</html>
Решение, конечно, очень некрасивое, зато 100% работоспособное, может кому пригодится
В начале декабря поставил webasto. Месяц эксплуатирую, доволен как слон.
Поставили перед печкой, как объяснили — специально (разницы там перед-после реально нет, шланги просто местами меняются грубо говоря), т.к. считается, что в печке часто, особенно в морозы, в верхнее части радиатора после стоянки может образоваться воздушная пробка и вебасте будет плохо если она ее прогонит. Не знаю правда — нет, я доволен и так.
Но рассказать и поделиться все равно есть чем.
Сразу после установки выезжаю — тачка еле греется, вообще фиг прогреешь до рабочих оборотов, ну думаю ладно, за бортом -35, лишние 2 литра антифриза в системе — привыкну. Потом понимаю что даже когда прогрелась — из печки дует холодом. Ну т.е. не просто там чуть похуже стало а вообще зябко. После установки webasto печка не греет. Ну, думаю, приплыли. Заезжаю на горку, газую, что-то булькает, эффекта нет. А машина позарез нужна была, в морозы пешком двигаться по делам удовольствие то еще. Вообщем ездил я пару дней с затянутыми окнами и холодом из печки.
Приезжаю к установщикам. Справедливости ради надо сказать, что меня постоянно спрашивали про пробку, что надо выгонять и просто все завоздушено. Но я говорю надо — выгоняйте, попробовали еще погазовать — ноль реакции. Ну делать нечего — еще раз проверили всю новую трассу шлангов на перегибы и вывели помпу вебасты на кнопку в салон.
Той же ночью поехал в академ, и совершилось. Штатная помпа на скорости под сотню + вебастовская разогнали антифриз в системе и, как и ожидалось, в машине начался дикий ташкент. Пробка вышла. В машине ташкент и без помпы, как и раньше, а с бонусной халявной кнопкой и вообще в пробке жарит как на скорости 40 км/ч.
Вывод: причин плохой работы печки после установки webasto две и только две: перегибы шлангов и воздушные пробки. Все рассказы установщиков про ухудшившуюся циркуляцию и «так и должно быть» — бред и нежелание работать, не больше.
Отдельно хочется сказать о том, куда ставить webasto.
Даже официалы норовят воткнуть webasto в бампер, не говоря уже о серых установщиках. Правильно — работы меньше всего + вот он готовенький клиент после первой аварии. Это, я считаю, полная халтура. Сразу сказал что в бампер я себе ставить не дам. Всегда можно найти место, если мозгами пошевелить. Мне вот расширительный бочек перенесли и поставили поближе к движку. Если места нет сверху, то всегда найдется место снизу, при этом выше ватерлинии. Короче надо настаивать чтоб искали, а не халтурили.
Теперь о приятном, т.е. об ощущениях после установки. Само собой, мне теперь строго без разницы на температуру за бортом. В морозы webasto завожу за 40 минут до выхода с брелка. Далее за 10 минут до выхода завожу движок чтоб в салоне стало тепло. Садишься в машину — красота. На улке -30 а тут уже теплынь, шапку снять можно, руль холодом не обжигает. Ну и выключаю отопитель только когда машина полностью прогреется уже с работающей на полную печкой, а это очень быстро. Через 10 минут езды климат, настроенный на -25, уже прикрывает печку, что как-бы говорит о быстроте прогрева.
Цена вопроса: 40т.р. Оно того стоит:)
Запарился уже забывать. F + ключик! Обратно на пищалку так же. Пусть будет на память тут, может пригодится кому из поиска
Скоро поставлю старлайн E90, быстрее бы ужеееееееее!