Để thực hiện và an toàn Tôi muốn thực hiện một vector có kích thước cố định vừa không thay đổi vừa chuyên dụng (tôi cần các loại mỹ phẩm nhanh). Ý tưởng đầu tiên của tôi là sử dụng chú thích @specialized
(vì tôi cần cả số nguyên và số thực).Thực hiện một kích thước cố định, không thay đổi, và vector chuyên ngành
Đây là một thử đầu tiên:
package so
class Vec[@specialized A] private[so] (ary: Array[A]) {
def apply(i: Int) = ary(i)
}
Tuy nhiên, khi tôi phân tích bytecode kết quả với javap
, tôi có thể thấy rằng các yếu tố vẫn được đóng hộp. Ví dụ:
public 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
Dường như mảng không chuyên ngành có vẻ ngớ ngẩn, vì mảng chuyên về JVM.
Tôi có thể làm gì để đạt được mục tiêu của mình không?
Bạn đang sử dụng phiên bản nào? Có vẻ ổn với tôi với 2.9.2. –
Tôi đã thử với cả 2.9.2 và 2.8.2. – paradigmatic