Size: a a a

Обсуждения техдирские

2020 October 05

AY

Alexey Yurchenko in Обсуждения техдирские
Из своего опыта...
не могу писать на java/c# после go. Очень сильно раздражает время компиляции в цикле "код - запуск тестов". У java/c# это 5-10 сек даже на простых кейсах, в отличии от <1 сек на go.
источник

AY

Alexey Yurchenko in Обсуждения техдирские
Раньше как-то писали сотни строк без запуска компилятора, сейчас уже как-то не получается.
источник

AS

Andrey Shetukhin in Обсуждения техдирские
Alexey Yurchenko
Раньше как-то писали сотни строк без запуска компилятора, сейчас уже как-то не получается.
Это сильно зависит от того, что делаешь. Если мелкий рефакторинг-исправления багов-дописывание, то без запуска плохо получается. Если же разработка с нуля - то и 2000 строк можно наваять не компилируя ничего.
источник

IS

Igor Shekalev in Обсуждения техдирские
Phil Delgyado
А откуда в .net в два раза меньше памяти?
Трудно точно сказать. Может сам jvm более массивен, чем dotnet. Я имею в виду всю память, а не только кучу.
источник

PD

Phil Delgyado in Обсуждения техдирские
Igor Shekalev
Трудно точно сказать. Может сам jvm более массивен, чем dotnet. Я имею в виду всю память, а не только кучу.
А откуда такая статистика, я первый раз такое слышу. А с учетом большей развитости JVM - я бы сказал, что должно быть наоборот.
источник

PD

Phil Delgyado in Обсуждения техдирские
Alexey Yurchenko
Из своего опыта...
не могу писать на java/c# после go. Очень сильно раздражает время компиляции в цикле "код - запуск тестов". У java/c# это 5-10 сек даже на простых кейсах, в отличии от <1 сек на go.
Хм, а JRebel не помогает?
источник

IS

Igor Shekalev in Обсуждения техдирские
Alexey Yurchenko
Раньше как-то писали сотни строк без запуска компилятора, сейчас уже как-то не получается.
Это просто другой experience. Тест, который тянет 100 КБ исходников можно запускать не ожидая, пока что-то там соберётся, прямо в процессе разработки.
Tdd ещё никогда не был так бкизок к народу 😊
источник

AS

Andrey Shetukhin in Обсуждения техдирские
Phil Delgyado
А откуда такая статистика, я первый раз такое слышу. А с учетом большей развитости JVM - я бы сказал, что должно быть наоборот.
Запасся попкорном. С интересом послушаю про то, что надо только правильно настроить гарбадж-коллектор.
источник

PD

Phil Delgyado in Обсуждения техдирские
Andrey Shetukhin
Запасся попкорном. С интересом послушаю про то, что надо только правильно настроить гарбадж-коллектор.
Ну, тут же от GC не зависит вообще, это про то, сколько уходит на сам запуск, тут больше про системные библиотеки (которые, впрочем, для дотнета могут не показываться явно, так как их винды считают системными), размеры базовых классов (типа используется упаковка строк в JVM или нет или сколько байт на указатель), особенности выравнивания и так далее.
источник

IS

Igor Shekalev in Обсуждения техдирские
Phil Delgyado
А откуда такая статистика, я первый раз такое слышу. А с учетом большей развитости JVM - я бы сказал, что должно быть наоборот.
Это не статистика, а моё субъективное мнение. Условно говоря, я просто смотрел сколько тот или иной "алгоритм" или сервис занимает памяти в разные моменты жизненного цикла. Java, возможно, просто тянет лишнее именно в коде.
источник

PD

Phil Delgyado in Обсуждения техдирские
Подозреваю, что тут скорее разница в том, как считается память - а не в чем-то еще.
источник

PD

Phil Delgyado in Обсуждения техдирские
Так как не вижу очевидных причин, почему .net должен занимать в два раза меньше места для решения тех же задач.
источник

PD

Phil Delgyado in Обсуждения техдирские
С гошечкой примерно та же фигня, впрочем. Но там core меньше, поэтому на небольших задачах сервисы на го требуют меньше памяти. Ну и боксинг памяти не требует..
Собственно, превращение примитивов в объекты - единственное, что может в java съедать память активно.
источник

IA

Igor A in Обсуждения техдирские
Alexey Yurchenko
Из своего опыта...
не могу писать на java/c# после go. Очень сильно раздражает время компиляции в цикле "код - запуск тестов". У java/c# это 5-10 сек даже на простых кейсах, в отличии от <1 сек на go.
В условиях микросервисов и spring cloud который ммнуту может подниматься жаловатья на 10сек ну такое...
источник

IA

Igor A in Обсуждения техдирские
Но вообще есть graal vm он стартует мгновенно. Но надо выкинуть всякий spring
источник

IA

Igor A in Обсуждения техдирские
Первый раз слышу о проблемах с jvm и жалобах на нее 🙈
источник

AY

Alexey Yurchenko in Обсуждения техдирские
Igor A
Но вообще есть graal vm он стартует мгновенно. Но надо выкинуть всякий spring
Я не говорю, что в целом java плохая. Просто к хорошему быстро привыкаешь.
У нас есть много внутренний сервисов, где в ci/cd нет тестов и тп тормозов. Выкатка от git push до завершения раскатки в кластере это секунд 30-40 на golang.... и сборка быстрая, и image весит 10-20мб, и старт быстрый. Все внутренние сервисы это "чик-чик и в прод" 😁
источник

IA

Igor A in Обсуждения техдирские
Аа тут согласен
источник

IA

Igor A in Обсуждения техдирские
Компиляция и выкатка в яве дольше
Но старт можно сделать быстрее но надо заморочиться но техники есть
источник

IA

Igor A in Обсуждения техдирские
Фич в яве больше. За это надо платить
источник