Перейти на головну

Порівняння і тести

Для порівняння, якщо вибрати кілька важливих факторів, що впливають на продуктивність і простоту використання, то виходить така таблиця:

Мова Потоки vs. процеси Неблокуючі I/O Простота використання
PHP Процеси Немає
Java Потоки Доступні Потрібні колбеки
Node.js Потоки Так Потрібні колбеки
Go Потоки (горутини) Так Колбеки не потрібні

Тестування здійснювалось за допомогою простих http серверів, в окремому випадку на Go він має вигляд:

func ServeHTTP(w http.ResponseWriter, r *http.Request) {

    // the underlying network call here is non-blocking
    rows, err := db.Query("SELECT ...")

    for _, row := range rows {
        // do something with the rows,
// each request in its own goroutine
    }

    w.Write(...) // write the response, also non-blocking

}            

N=кількість викликів функції хешуванния для створення фонової нагрузки. Скільки мілісекунд потрібно на виконання всіх одночасних запитів. Чим менше тим краще

Скільки мілісекунд потрібно на виконання всіх одночасних запитів. Чим менше тим краще

Загальна кількість запитів в секунду. Чим вище, тим краще

По матеріалам https://habr.com/company/mailru/blog/329258/