ПредишенСледващото

нека така че има два вида проблеми:

- CPU обвързани - различни алгоритми, математика, кодиране / декодиране / криптиране. С една дума, всичко, което натоварването на процесора.
- I / O граница - в действителност, когато сме с много операции с I / O, където около 90% от задачите, свързани с уеб сървъра и развитието.

За процесора не е обвързана използват езици като C, Rust, Dlang Иди, и т.н. Дума на езици, които събират за ефективно машинен код.

За I / O граница - Давай, NodeJS, Erlang, Java. Да, по принцип, без значение какъв език, основното нещо, което щеше да бъде използвана без блокиране на повиквания, и никой блокиране.

И все пак има опашка от задачи, мащабиране и т.н. Архитектурата и алгоритмите, използвани в системата засяга често са много повече от езиците за програмиране.

Кои езици са най-добре да се използва за това? Какво не трябва да се използва?
Без ограничения, просто здрав разум. Това не е вероятно, ще напишем комплекс математика, за да node.js, но проблемите, свързани с това много по-малко. Просто никой не казва, че системата трябва да бъде написана в строго на същия език. Сега е модерно да се използват mikroservisy, всяка от които може да се прилага на своя език и да си база данни, идеален за конкретна задача.

И все пак ние не трябва да забравяме за алгоритмите. Те трябва също така да бъде оптимално. Да вземем като пример проста задача - групиране на етикети върху картата. Представете си, че имате база на милиони обекти, ние трябва да се покаже на картата. Защото, за да се направи, че на клиента ще бъде трудно - ние трябва да го направя на сървъра и връща на клиента най-много данни се нуждае.

И тези суми, дори и ако ние взехме К, ако алгоритъм има сложност на O (N ^ 2) как би нещо тук не е особено помогне. И така ще бъде толкова бавно. Но ако вземем някакви алгоритми с сложност O (NLogN) вече е възможно, че този алгоритъм може да бъде дори и за PHP / Python / рубин implementit. Например аз имам този алгоритъм се реализира в Java и не е най-ефективния начин. Справя.

И все пак, засегнати от скоростта на развитие (всеки рубин / питон / възел в това отношение са добри), разходите за поддръжка (C поддържат много по-скъпо, отколкото Отиди например, въпреки че винаги е възможно да се напише толкова лошо, че е по-лесно да се поддържа, отколкото да хвърлят), разходите за развитие. За да се намери например евтини силни разработчиците да отида или Rust ще бъде много проблематично.

Само не забравяйте, че сървърът вече не са толкова скъпи. Понякога е по-лесно за бизнеса да плащат повече от дузина сървъри, за да напише всички плюсове.

Всъщност основното правило на тежки системи митата - стрес тест и след това да се оптимизира

> Binary сериализирането няма да спечели, ако той не е роден формата на данните в паметта или друг V8 двигател.

Аз някак си подозирам, че всички натоварването от всичко това добро не е по-малко от обичайното разбор JSON. Но ние се нуждаем критерии. Като цяло, идеята е интересна, и аз по някакъв начин се опитват.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!