Có thể nó phụ thuộc vào thiết bị của bạn.
Tuy nhiên, thử nghiệm, 8K < kích thước bộ đệm < 32K hoạt động tốt và có cải thiện hiệu suất đáng kể dưới 8K. Hơi thú vị là một số dữ liệu với bộ đệm> 64K cho thấy hiệu suất kém hơn so với dữ liệu với dưới 64K đệm
(tôi đã thử nghiệm trên nhiều thiết bị Android và cố gắng đọc 20MB tập tin nhị phân với kích thước bộ đệm khác nhau.)
Dưới đây là kết quả tìm kiếm và bạn nên dán chúng vào bảng tính nếu bạn muốn chuyển đổi dữ liệu ở dạng đẹp. tiêu đề có nghĩa kích thước bộ đệm và các đơn vị là millisecond
đồ thị: http://fb.com/photo.php?fbid=468345876512381
128 256 512 1K 2K 4K 8K 16K 32K 64K 128K 256K 512K 1M 2M 4M 8M 16M
Galaxy S 4047 3060 269 155 100 65 64 52 51 45 47 50 49 43 44 46 45 58
Optimus LTE 1178 617 322 172 101 65 47 42 41 35 36 39 44 61 56 51 72 60
HTC EVO 3971 1884 941 480 251 141 95 69 56 50 48 55 50 49 48 48 48 47
Galaxy S2 750 383 210 123 74 50 41 37 35 34 34 37 39 44 46 44 45 44
Galaxy Nexus 2272 1216 659 341 187 108 70 52 41 38 38 45 44 54 56 66 68 58
Galaxy Note 1549 799 404 220 127 75 58 54 52 56 52 45 44 62 43 39 44 46
InputStream in = openFileInput(FILE_NAME);
startTime = System.currentTimeMillis();
while (in.read(buffer) > 0) {
readCount++;
}
elapsedTime = System.currentTimeMillis() - startTime;
Nguồn
2012-06-27 08:08:42
Bạn thực sự có nghĩa là Dalvik VM khi bạn nói JVM phải không? – slayton
@ slayton có, máy ảo Dalvik cụ thể – L7ColWinters
Tôi cũng muốn chỉ ra rằng điều này có một chút để làm với độ trễ âm thanh và android, nó không phải là lý do duy nhất cho độ trễ kém nhưng nó là một yếu tố góp phần, xem https://developers.google.com/events/io/sessions/325993827 để có giải thích tốt hơn – L7ColWinters