2015-08-06 12 views
10

W dokumentacji o Scala value classes, wspomniano, że istnieją trzy przypadki, gdy klasa wartość musi faktycznie być przydzielane instancję:Czy istnieje sposób uzyskania ostrzeżenia, gdy klasa wartości Scala musi zostać utworzona?

Alokacja Podsumowanie

Klasa wartość jest faktycznie instancja, gdy:

  1. klasa wartości jest traktowana jako inny typ.
  2. klasa wartości jest przypisana do tablicy.
  3. wykonanie testów typu środowiska wykonawczego, takich jak dopasowywanie wzorców.

Czy jest ustawienie w kompilator lub w funkcji językowych, które produkują ostrzeżenie, gdy klasa wartość musi być instancja?

Odpowiedz

1

Nie, aktualnie nie.

Jednak bardzo rzadko warto martwić się tego rodzaju mikrooptymalizacją.

Jeśli masz bardzo bardzo gorący kod i musisz go zoptymalizować tak bardzo, jak to możliwe, spróbuj tylko kilku rzeczy i przeprowadź test porównawczy.

Kompilator JIT zmieni kod roboczy na poziomie maszyny przez długi czas, jeśli kod jest wystarczająco gorący.

Narzut alokacji klasy wartości często nie jest możliwy do zmierzenia, chyba że jest to jedyna rzecz, którą robi wątek. Zobacz np. https://groups.google.com/forum/#!topic/scala-user/XdQnbcs2SRM dla niektórych benchmarków, w których alokacja klasy wartości jest niemożliwa do zmierzenia.

Powiązane problemy