Pull to refresh
1
0
Иван @vayho

Java разработчик

Send message
В java уже можно не поднимать сервер вручную, встраивайте сервер в jar и все. Всякие Spring Boot это делают из коробки.
Не понял где во фразе выше его назвали экпертом.
Хотел попросить у вас ссылку на какой нибудь шлак для примера чтобы почитать, но потом начал рассуждать про себя и понял что проще перебрать нормальные блоги компаний, их наверно по пальцам двух рук можно пересчитать.
Возможно у них в компании все так печально, у меня на первой работе на устновку JVM давали 4 часа. Ну и тюнингом новички обычно не занимаются. Да и какой там тюнинг, в 99% случаев его нет вообще, кроме 3х параметров "-server -Xms -Xmx". Java контейнеры это бинарники, просто JVM ориентированные, никакого там сюрприза для человека который например пользовался gcc до этого нет.
Вы забыли что количество готового кода на Java несравнимо больше чем на Go, ну это так мелкое дополнение.
Вход в Scala занимает месяцы? Это где вы такое прочитали?
Почему статью не назвали «Как мы перешли со Scalaz на Go»? Как бы Scalaz != Scala. Я например не использую эту либу в своем коде, потому что в стандартной скале и так много готовых хороших абстракций. Так же Scalaz не советуют использовать и текущие разработчики Scala.
А не думали использовать веб сокеты вместо XMLHttpRequest? Например поднять несколько соединений и гонять по ним Blob. Возможно по скорости это будет быстрее.
Кстати можно еще оптимизировать сразу подгружая центральную (или несколько вокруг) картинку чтобы пользователь не ждал.
Ненене, пусть вернут мне сюда космос и DIY а весь шлак типо обзора новой трубки или борьбы с роскомчемтотам оставят в резервации на GT.
Часто эта фраза просто попытка остановить бессмысленный спор. Бессмысленный это когда разговор о PHP и Node.js скатывается в обсуждение аллегорий и аналогий http://habrahabr.ru/post/273259/#comment_8691591
Я выше выложил результаты Scala/Finch и Go. Можете глянуть.
Вот такой код:
  val endpoints: Endpoint[String :+: String :+: CNil] =
    get(/) {Ok("Hello, World!")} :+: get("greeting" / string) { name: String => Ok("Hello, " + name + "!") }

  Await.ready(Http.serve(":8080", endpoints.toService))


Дал такие результаты:
Finch
Server Software:
Server Hostname: localhost
Server Port: 8080

Document Path: /
Document Length: 13 bytes

Concurrency Level: 256
Time taken for tests: 1.154 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 5800000 bytes
HTML transferred: 650000 bytes
Requests per second: 43328.87 [#/sec] (mean)
Time per request: 5.908 [ms] (mean)
Time per request: 0.023 [ms] (mean, across all concurrent requests)
Transfer rate: 4908.35 [Kbytes/sec] received

Connection Times (ms)
min mean[±sd] median max
Connect: 0 2 1.1 1 8
Processing: 0 2 1.6 2 15
Waiting: 0 2 1.4 1 15
Total: 0 4 2.6 3 17

Percentage of the requests served within a certain time (ms)
50% 3
66% 5
75% 6
80% 6
90% 8
95% 9
98% 10
99% 11
100% 17 (longest request)

Для сравнения:
Go
Server Software:
Server Hostname: localhost
Server Port: 8080

Document Path: /
Document Length: 12 bytes

Concurrency Level: 256
Time taken for tests: 1.241 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 6450000 bytes
HTML transferred: 600000 bytes
Requests per second: 40297.59 [#/sec] (mean)
Time per request: 6.353 [ms] (mean)
Time per request: 0.025 [ms] (mean, across all concurrent requests)
Transfer rate: 5076.55 [Kbytes/sec] received

Connection Times (ms)
min mean[±sd] median max
Connect: 0 3 49.5 0 1000
Processing: 1 3 4.5 3 204
Waiting: 0 3 4.5 3 203
Total: 1 6 51.2 3 1199

Percentage of the requests served within a certain time (ms)
50% 3
66% 3
75% 3
80% 3
90% 4
95% 6
98% 8
99% 15
100% 1199 (longest request)


Но если брать несколько прогонов то там результаты и Go и Finch примерно одинаковы ~6ms.
У go — 6.2ms в среднем, у Scala/Spray — 8.3ms в среднем. Scala после прогрева, потому что до прогрева тестировать смысла нет.
Я имею ввиду Time per request в ab. У меня на локальных тестах с вашим кодом выдает цифры в районе ~10ms.
Вы на localhost тестировали? Почему такая высокая задержка? Или это VirtualBox тормозит?
Вполне может быть, последнее время я с параноидальностью отношусь к безопасности, мог забыть(как ни парадоксально).
ну либы по идее поставляются в Scala коде, а потом уже все приложение компилируется в js, т.е. рантайм все равно будет один, хотя да любая отдельная либа собирается вместе с рантаймом
Я ее уже восстановил, кстати восстановление быстро(правда пришлось вспоминать всякую доп инфу, имя, фамилию, и вроде инфу из последних писем, но эт онормально). Почту у меня уводили уже два раза и оба раза на следующий день восстанавливали.
(отписал в личку адрес все равно, чтобы не быть голословным)
А вам еще не ломали почту на mail.ru с двухфакторной аутентификацией? У меня вот увели и телефон даже не пискнул.
Можно использовать один рантайм для всех библиотек. Это же просто js скрипт.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity