Сообщение Re[13]: Оставаться в С++ или уходить? от 05.02.2022 7:56
Изменено 05.02.2022 7:59 vsb
Re[13]: Оставаться в С++ или уходить?
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Потянет твоя Ява пересчитывать такое на лаптопе в реальном времени?
SVZ>Под "пересчитывать" я подразумеваю не только рисование, но и обработку данных (передвинули компонент — трассы переложить, полигоны перезалить, нарушения найти/посчитать и т.д.).
Я на яве программирую больше 10 лет. И в целом часто ковыряюсь с производительностью. Могу так сказать:
По скорости хороший код на яве будет отставать от хорошего кода на C++ в полтора-два раза. Могут быть нюансы с векторизацией. Но в целом примерно такой порядок.
По памяти жава её жрёт как не в себя, по крайней мере по меркам С++. Тут никаких чудес нет.
Ещё есть нюанс с латентностью. Сборщик мусора может остановить поток или всю программу на несколько десятков миллисекунд (а то и сотен). Современные сборщики мусора стали довольно хороши, но за счёт того, что жрут ещё больше памяти. Поэтому в целом можно пытаться даже 60 FPS со сложными расчётами.
Я не знаю, как твой код на С++ работает, какой у него запас. Но примерно можно рассчитывать на то, что жава будет работать не более чем в 2 раза медленней и если нет требований к латентности и этого хватает, то её можно использовать.
Причём с рисованием там как раз могут быть проблемы, т.к. графику на жаве мало кто делает и вероятно придётся делать свои биндинги и прочее. Я про чистую логику.
SVZ>Потянет твоя Ява пересчитывать такое на лаптопе в реальном времени?
SVZ>Под "пересчитывать" я подразумеваю не только рисование, но и обработку данных (передвинули компонент — трассы переложить, полигоны перезалить, нарушения найти/посчитать и т.д.).
Я на яве программирую больше 10 лет. И в целом часто ковыряюсь с производительностью. Могу так сказать:
По скорости хороший код на яве будет отставать от хорошего кода на C++ в полтора-два раза. Могут быть нюансы с векторизацией. Но в целом примерно такой порядок.
По памяти жава её жрёт как не в себя, по крайней мере по меркам С++. Тут никаких чудес нет.
Ещё есть нюанс с латентностью. Сборщик мусора может остановить поток или всю программу на несколько десятков миллисекунд (а то и сотен). Современные сборщики мусора стали довольно хороши, но за счёт того, что жрут ещё больше памяти. Поэтому в целом можно пытаться даже 60 FPS со сложными расчётами.
Я не знаю, как твой код на С++ работает, какой у него запас. Но примерно можно рассчитывать на то, что жава будет работать не более чем в 2 раза медленней и если нет требований к латентности и этого хватает, то её можно использовать.
Причём с рисованием там как раз могут быть проблемы, т.к. графику на жаве мало кто делает и вероятно придётся делать свои биндинги и прочее. Я про чистую логику.
Re[13]: Оставаться в С++ или уходить?
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Потянет твоя Ява пересчитывать такое на лаптопе в реальном времени?
SVZ>Под "пересчитывать" я подразумеваю не только рисование, но и обработку данных (передвинули компонент — трассы переложить, полигоны перезалить, нарушения найти/посчитать и т.д.).
Я на яве программирую больше 10 лет. И в целом часто ковыряюсь с производительностью. Могу так сказать:
По скорости хороший код на яве будет отставать от хорошего кода на C++ в полтора-два раза. Могут быть нюансы с векторизацией. Но в целом примерно такой порядок.
По памяти жава её жрёт как не в себя, по крайней мере по меркам С++. Тут никаких чудес нет.
Ещё есть нюанс с латентностью. Сборщик мусора может остановить поток или всю программу на несколько десятков миллисекунд (а то и сотен). Современные сборщики мусора стали довольно хороши, но за счёт того, что жрут ещё больше памяти. Поэтому в целом можно пытаться даже 60 FPS со сложными расчётами.
Я не знаю, как твой код на С++ работает, какой у него запас. Но примерно можно рассчитывать на то, что жава будет работать не более чем в 2 раза медленней и если нет требований к латентности и этого хватает, то её можно использовать.
Причём с рисованием там как раз могут быть проблемы, т.к. графику на жаве мало кто делает и вероятно придётся делать свои биндинги и прочее. Я про чистую логику.
При обработке больших данных вероятно придётся писать не-идиоматичный код. Всякие int[] и подобное. Но это не так уж страшно.
SVZ>Потянет твоя Ява пересчитывать такое на лаптопе в реальном времени?
SVZ>Под "пересчитывать" я подразумеваю не только рисование, но и обработку данных (передвинули компонент — трассы переложить, полигоны перезалить, нарушения найти/посчитать и т.д.).
Я на яве программирую больше 10 лет. И в целом часто ковыряюсь с производительностью. Могу так сказать:
По скорости хороший код на яве будет отставать от хорошего кода на C++ в полтора-два раза. Могут быть нюансы с векторизацией. Но в целом примерно такой порядок.
По памяти жава её жрёт как не в себя, по крайней мере по меркам С++. Тут никаких чудес нет.
Ещё есть нюанс с латентностью. Сборщик мусора может остановить поток или всю программу на несколько десятков миллисекунд (а то и сотен). Современные сборщики мусора стали довольно хороши, но за счёт того, что жрут ещё больше памяти. Поэтому в целом можно пытаться даже 60 FPS со сложными расчётами.
Я не знаю, как твой код на С++ работает, какой у него запас. Но примерно можно рассчитывать на то, что жава будет работать не более чем в 2 раза медленней и если нет требований к латентности и этого хватает, то её можно использовать.
Причём с рисованием там как раз могут быть проблемы, т.к. графику на жаве мало кто делает и вероятно придётся делать свои биндинги и прочее. Я про чистую логику.
При обработке больших данных вероятно придётся писать не-идиоматичный код. Всякие int[] и подобное. Но это не так уж страшно.