> Ахаха, школолло, ты вообще понимаешь о чем речь? Пойди помечтай о свой должности руководителя и бегом листовки разносить ))
Дядя, ты уже со своими нападками про «школоло» уже заипал всех. Хватит сливать, ответь хотя-бы на вопросы:
1. почему ты решил, что будучи переписанным на C++, продукт станет работать _ОЩУТИМО_ быстрее? Про JIT никто тебе не намекал? У C++-а rtti очень кривой и громоздкий, он на нет всю его прелесть сведет.
2. Значит про то, что этот проект писал даже не ты, я угодал? чем ты понтуешься тогда? Тем что знаешь C++ и знаешь Java? молодец, возьми еще конфетку.
Без ответа на эти 2 вопроса весь последующий твой выхлоп счиатю сливом.
> Качество работы числодробилок редко упирается в возможности языка (нормального языка)
На самом деле да, бред, в реале, код на Java при включенном JIT-е (с включенной оптимизацией под конкретную машину) выдает примерно те-же результаты, что и C++ код, с ключенной полной оптимизацией под конкретную машину).
Однако ООП-шные вещи на Java часто оказываются быстрее, быстрее отрабатывает вызов виртуальных методов, быстрее lookup по хешам и мапам, так что в целом код на Java при грамотной настройке JVM, в включении JIT-а никак не будет медленее кода на C++, при условии, что код на Java писал не студент первого курса, и не Siado.
>На самом деле да, бред, в реале, код на Java при включенном JIT-е (с включенной оптимизацией под конкретную машину) выдает примерно те-же результаты, что и C++ код, с ключенной полной оптимизацией под конкретную машину).
Пруф, или метан?
Однако ООП-шные вещи на Java часто оказываются быстрее, быстрее отрабатывает вызов виртуальных методов, быстрее lookup по хешам и мапам, так что в целом код на Java при грамотной настройке JVM, в включении JIT-а никак не будет медленее кода на C++
Буду считать это за ответ «мне слабо, я струсил показать свой код».
Так-же будем считать положительным ответ на вопрос, кто изначально писал ту систему. А раз так - то тебе гордится вообще нечем. Переписать с языка на язык любой индус смогет.
Если вы работаете с Java, то прув на такие вещи должны сами предоставлять.
Если вы в этом сомневаетесь - то тогда не удивительно, что ваши знания не позволяют одинаково эффективно писать на java и С++.
А уж при портировании я думаю эффект будет замечательный
Вы хоть представляете, как работат С++, а как работает Jit в Java?
И вот, очень детальное эссе от Клиффа Клика (Cliff Click), признанного авторитет в области Java-платформ, там в конце есть мелкие тестики, в которых C++ ну никакх не хочет уделывать Java:
Школие гуем не занимается, этим занимаются junior-ы пишущие за еду.
Причем тут GUI и производительность? Вы свои творения запускаете на p1mmx/166MHz?
GUI у Java достаточно шустрый, что-бы срабатывать быстрее, чем реагирует человек (скорость распространения нервного импульса о нажатии пальцем на кнопку, от рецепторов, по нервным волокнам - от 10 до 100 м/с, за то время, пока сигнал поднимется по руке к мозгу, любая Java морда уже нарисовать успеет действие на экране).
Или вы 3D игру на Java пишете? Кстати тож не удачный пример, 3D и OpenGL-подобие какое-то в Java очень хорошо работает.
> Зачем мне этим заниматься, не мой же вброс был. Кто такое заявляет пущай сам и доказывает себе.
Значит вы себя считаете неопровержимым. В свое время я сам даже тестики для себя писал, чтоб в этом убедиться.
Это вообще откуда такой вывод О_о
Из кучи статей, тестов и даже парочки своих тестов. Код на java выполняется плохо обычно тогда, когда он написал с использованием нехарактерных и неэффективных для java приемов (сдернутых с С++ например). В С++ так же приему java могут быть неэффективны
>Значит вы себя считаете неопровержимым. В свое время я сам даже тестики для себя писал, чтоб в этом убедиться.
Да я не про это, а про то, что зачем мне заниматься тем, что бы пруфы предоставлять. Я то знаю в каких случаях жаба может быть оптимальнее С++ но это не мой случай.
>GUI у Java достаточно шустрый, что-бы срабатывать быстрее, чем реагирует человек (скорость распространения нервного импульса о нажатии пальцем на кнопку, от рецепторов, по нервным волокнам - от 10 до 100 м/с, за то время, пока сигнал поднимется по руке к мозгу, любая Java морда уже нарисовать успеет действие на экране).
Сплошной метан. Например поработай в Нетбинсе или эклипсе хоть раз.
> Сплошной метан. Например поработай в Нетбинсе или эклипсе хоть раз.
Причем тут это? Вы решили переписать код, только из-за того, что GUI подтормаживает немножко ? И кто тут школота еще?
Да, в нетбинсе работал последний раз лет 6 назад, но и тогда на тогдашней средней машине он мне не показался слишком непроворотливым, эклипсом не настолько давно, года три назад (Platform SDK одной хардверной компании сильно завязана на eclipse, пришлось, ставить и юзоть), и тоже, на G4/1GHz он вполне шустро работал. ЧЯДНТ?
> Не по теме? Ты утверждаешь что SWING не тормозит?
Ты задачку то понял? То, что N продуктов на Java имеют подтормаживающий на слабых машинах GUI, не означает что на Java принципиально нельзя сделать шустрый GUI, просто авторам N продуктов было накласть на легкие подтормаживания у зад..зануд, которые докапываются до мелочей таких.
По делу — как скорость работы GUI сказывается на числодробильной задаче? ну отобразите вы на 0.5 секунды медленнее результат, какая разница, если числодробления все равно куда дольше происходят?
ЗЫ, вот еще вопросец, просто любопытно, сможете ответить или опять сольете, хотя это так, школьники ответят даже, вроде меня:
Вставьте пропущенную букву, и допиши имя автора, который подразумевался:
..аерс
Если не ответишь - то точно в C++ ты полный нагревательный прибор для воды. Хотя это и так очевидно.
В фарах-глазах ;) (реально - очень похоже) на 6 месяцев прав лишат ;) Да ладно, это я так, о своем, радует что хоть в чем-то наши власти по уму делать пытаются.
>>числодробилка с высокой степенью статичного кода
Это как?
Это значит, что компилятор на стадии статического анализа (то есть констант времени компиляции) может провести глубокую оптимизацию (например развертывани рекурсий, отказ от создания стэка вызова функции, inline подставнока или вообще местами замена вызова функций с малым допустим кол-вом параметров сразу в результат). Простой пример, тупой код с рекурсивным вычислением последовательности Фибоначи.
Как только в дело вступает динамический полиморфизм, java может оказаться быстрее за счет накопления runtime статистики и использование ее при компиляции байт кода.
Кстати, меня из java интересует вопрос: насколько глубокую оптимизацию она делает после нескольких проходов? То есть насколько развит hot spot (или как они называли технологию, следующую за jit)
> Кстати, меня из java интересует вопрос: насколько глубокую оптимизацию она делает после нескольких проходов? То есть насколько развит hot spot (или как они называли технологию, следующую за jit)
Я так глубоко никогда не лазил, но imho все зависит от конкретных настроек JVM-а.
не означает что на Java принципиально нельзя сделать шустрый GUI
С таким подходом, как это сделано в свинге, в жабе действительно нельзя создать нормальный GUI (опрятный, нативный, быстрый). Чтобы посмотреть на быстрый гуи на «жабе», можно взглянуть на java-gnome — вот какой-то такой подход и является единственно верным.
> С таким подходом, как это сделано в свинге, в жабе действительно нельзя создать нормальный GUI (опрятный, нативный, быстрый). Чтобы посмотреть на быстрый гуи на «жабе», можно взглянуть на java-gnome — вот какой-то такой подход и является единственно верным.
Речь об том, что медленный GUI - никак не может быть основанием для перписывания все на C++. Ну напишите как грится на java-gnome том-же, или вообще, GUI вынесите во фронт-энд, который, если уж очень хочется, пишите на плюсах (это адресовано топикстартеру).
По моим наблюдениями только те, кто только начал изучать C++ сичтают его хорошим, удобным, замечатльным языком, те кто не имел возможности еще лицезреть всех-всех-всех тонкостей языка, чья спека только занимает не один мегобайт текста, не говоря уже о подробном мануале по языку.
Saido, гарик, можешь не отвечать, все и так понятно.
> По моим наблюдениями только те, кто только начал изучать C++ сичтают его хорошим, удобным, замечатльным языком, те кто не имел возможности еще лицезреть всех-всех-всех тонкостей языка
Бывают исключения из любого правила. Однако все познается в сравнении, и в сравнении со многими другими языками, C++ - очень суровый язык. Если например Objective-C реально осилить за пару месяцев, так что-бы писать высоко профессиональный код, то C++ нужно ботать доооолго, и любой перерыв в практике сразу сказывается на опыте, тут-же начинаешь что-то забывать важно, а в C++ все мелочи - важные.