razvoj govna

Недавно сам се углавном са кодом уместо администрације, тако драме пред којим стојим са кодене су много више него што сервера, па сам одлучио да написа неколико редова глупости које успеју да створе. Појачан се спремају да представе свој пројекат који принудно отварање помало драматичних делова

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за АЈАКС и остали динамички процеси који преносе интерактивност и савремене визије и побољшати функционалност. Мислили смо много о томе да најприхватљивији био са информацијама колачића и затим ПХП да провери да ли је информација тачна, и ако је све добро. Сасвим писмен одлука, али на крају се појави мало пристојније верзију. ХТМЛ- да се игра ако дође у НоСцрипт. Мислим да је веома елегантно решење.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

Генерално, ситуација је тривијално ако станемо подршка ЈС ће бити преусмерени на нојс.хтмл. Једноставан и веома ефикасно решење

  • пхп мултхитхреадинг – многи нисхковоста је нешто врло корисно за процесоре са више језгра (не да на сингле цоре није у реду, али многе ствари нуклеарни системи су јос једно пиво). Наш софтвер је део који се бави прикупљањем података од других АПИ за – она и ја импортва у нашој бази Данни. Обсхтовзето двобоја, осим што је поново остварен са мултхитхреадинг пхп у ЦЛИ моду јер је тај процес досатацхно велики и треба да буде атоматизиран некоме је императив да то уради ручно. Овде је драма повезан са фокрването процеса и протока не само створити proces дете-и скрипта да чекали да приклиуцхабота да створи нови. Глупо је убијен мултипроцессинг представу о томе шта је заправо понашање, а не мултхитхреадинг али то су детаљи. Већина пут напред & након што је суђење, што значи да наставе свој рад сценарио још никакве промене у понашању потребне и стандардни излаз скрипта да преусмере – у мом случају, као и да /дев / нулл 🙂 Накрая структурата на тази част от кода изглеждаше така
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
}else if ($pid) {
// we are the parent
echo "I'm parent  \n";
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
echo "I'm a child $timer  \n";
exec("$command > /dev/null &");
exit (0);
}

Примерчето отново е тривиално. Од до извођења сам био веома импресиониран смењују између укидање процеса и тако је о 50 Процес-дете који је имао своју странба 7800+ МиСКЛ убацује о 30-40 сек. Машина је изузетно слаба, јер смо варар тест пре наношења да се подигне прави.

  • мискл куерис – Био сам шокиран велики лудости. Био је код који је 4-5 непотребне захтеве у бази података, уместо да користи више плодну скл упит, а затим је главни посао да би пхп-ит. Драма је била таква, већина- напред се правеше една заявка която взимаше информация после изхода от заявката се използваше да се направят други заявки като тя служеше за аргументи. Доста грозна и тлъста ситуация. Subquery а е непозната територия явно както и left join или просто не са били обмисляни нещата добре. Хванах пренаписах заявката всичко се получи доста добре и като цяло натоварването падна с около 200% за същата част от кода.

В общи линии това са нещата на последък с които се заниамваме и немога да кажа че е скучно но понякога се изумявам от разни необмисляни парчета код които трябва да поправям а най стеращното е че често са мои 😆

Potpomognuto Zemanta

2 коментари

  1. И аз имам тегления на данни, сложени в crontab-a. Пробвах преди със & в края, но ставаше пиково натоварване, грозна история. Сега съм ги оставил, като свърши единия процес, да пуска другия, но това е ужасТ :> Като зацикли някъде и всичко отива по дяволитетова го решавам като килвам старите процеси, като дойде време да се пуска новия, но това е още по-голям ужасТ, защото губя данни. Та ще се се опитам да имплементирам, твоето решене по този въпрос. Благодарско! 🙂

    1. Ами по моя метод хубавото е че информацията може да се обработва от няколко процеса едновременно но това също ти гарантира по голямо натоварване 😉 Баланса между натоварване и скорост винаги е много тънък. Всичко опира до тестове.

Оставите одговор

Ваша емаил адреса неће бити објављена. Обавезна поља су означена *

anti Спам *