Комментарии 10
В приведенной формулировке вопрос не имеет смысла. В каком бы порядке я бы не написал циферки в ответ — всегда можно написать такую реализацию List и наследника PrintStream, которые дадут именно такой результат в бенчмарках.
НЛО прилетело и опубликовало эту надпись здесь
Чтобы правильно ответить на задачи нужно было либо знать, либо разобраться (посмотреть исходники, закодить за пять минут наколеночный бенчмарк или спросить у гугла). Никто этого не отрицает.
На одном из стендов вообще был ассемблерный код, эквивалент которого генерит JIT — было б время, поразбирался из интереса. Хотя первая реакция была такой же, как ваша.
На одном из стендов вообще был ассемблерный код
Скоро и наши задачки доберутся до хабра с решениями. :)
Часто вы используете реализации List или наследников PrintStream, отличных от JDK'шных?
К самой викторине нужно относиться как к развлечению, хотя и здесь JIT оставляет нам пространство на подумать.
Часто вы используете реализации List или наследников PrintStream, отличных от JDK'шных?
Какое это имеет отношение к озвученной задаче?
Вы просите оценить производительность трёх методов, вот только получается, что их производительность зависит не от того, что написано в них самих, а от подробностей внешних условий, которые вы никак не задаёте, а значит они могут быть произвольными. Любой ответ будет правильным при тех или иных допущениях, в чём смысл такой задачи — лично мне неясно.
Какое это имеет отношение к озвученной задаче?
Всегда есть место некоторому допущению. Как, например, при вступлении в брак предполагается, что супруги будут верны друг другу.
Вы просите оценить производительность трёх методов, вот только получается, что их производительность зависит не от того, что написано в них самих, а от подробностей внешних условий, которые вы никак не задаёте, а значит они могут быть произвольными.
Строго говоря, на пути вашего кода на Java к производительности есть по меньшей мере javac, JIT-компилятор, GC, side-эффекты от остальной части JVM, OS, hardware и ещё много чего, о чём я даже не подозреваю. При этом, если вы можете легко рассуждать о влиянии всех этих вещей на итоговую производительность — вы круты.
в чём смысл такой задачи — лично мне неясно
В том же, в чём, например, смысл логических задач — разминка для ума.
А задач на то, что бы Java не тормозила вы не решаете?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Разбор перформансных задач с JBreak (часть 1)