2013-06-25 6 views

ответ

2

Я бы сказал, что безопасно предположить, что он отключает специализацию для целевого метода. Хорошей причиной для отключения специализации является предотвращение набегания байт-кода. Специализация каждого метода без разбора - плохая идея, потому что каждая специализация в основном представляет собой отдельную копию того же метода, а размер байт-кода растет довольно быстро. Поэтому я предполагаю, что специализация Function2 считалась в целом более высокой, чем размер байт-кода, за исключением tupled и compose, которые не были достаточно важны, чтобы гарантировать добавочное увеличение. Это тонкий баланс между размером кода и скоростью выполнения, идея состоит в том, чтобы получить наибольшее количество баллов за доллары.

В стороне: в смешной иллюстрации того, как проблематичны коды раздувание, индуцированное specilization может быть, см этого рецепта для бомбы лестницу:

Scala bomb? (like a zip bomb)