Performans ve güvenlik için hem sabit hem de uzmanlık gerektiren sabit boyutlu bir vektör uygulamak istiyorum (hızlı aritmetik ihtiyacım var). İlk düşüncem @specialized
ek açıklamasını kullanmaktı (çünkü hem tamsayılara hem de sonuçlara ihtiyacım var). Ben javap
ile sonuçlanan bayt kodu çözümlemekSabit boyutlu, değişmez ve özel bir vektörün uygulanması
package so
class Vec[@specialized A] private[so] (ary: Array[A]) {
def apply(i: Int) = ary(i)
}
Ancak, ben elemanlar hala kutulu olduğunu görebilirsiniz: Burada
bir ilk deneyin. Örneğin: diziler diziler JVM üzerinde uzmanlaşmış, çünkü saçma görünüyor uzman değildirler gibi görünüyorpublic double apply$mcD$sp(int);
Code:
0: aload_0
1: iload_1
2: invokevirtual #33; //Method apply:(I)Ljava/lang/Object;
5: invokestatic #83; //Method scala/runtime/BoxesRunTime.unboxToDouble:(Ljava/lang/Object;)D
8: dreturn
.
Hedefime ulaşmak için hala yapabileceğim bir şey var mı?
Hangi süreyi kullanıyorsunuz? 2.9.2 ile benim için iyi görünüyor. –
Hem 2.9.2 hem de 2.8.2 ile çalıştım. – paradigmatic