Thêm game tại WuGames.ioTài trợKhám phá kho game trình duyệt miễn phí — chơi ngay, không tải, không đăng ký.Chơi ngay

Test đọc ghi ổ cứng

Benchmark lưu trữ trình duyệt miễn phí với IndexedDB và localStorage. Đo MB/s đọc ghi, độ trễ mỗi thao tác và chạy nhiều lượt để thấy độ dao động.

Thông tin lưu trữ
Bài test lưu trữ
Tên bài testTốc độTB (trung vị)Độ trễTrạng thái
Ghi IndexedDB
Ghi 1,000 mục (mỗi mục 1KB)
--- Chờ
Đọc IndexedDB
Đọc 1,000 mục từ IndexedDB
--- Chờ
Ghi localStorage
Ghi 100 mục vào localStorage
--- Chờ
Đọc localStorage
Đọc 100 mục từ localStorage
--- Chờ
Xử lý file lớn
Đọc/Ghi file 10MB
--- Chờ

Test đọc ghi ổ cứng - Kiểm tra hiệu năng disk

Công cụ test tốc độ lưu trữ trực tuyến toàn diện để đo hiệu năng lưu trữ trình duyệt bằng IndexedDB và localStorage. Chạy các bài test tốc độ ghi, đọc và xử lý file lớn để đánh giá hiệu năng lưu trữ của hệ thống.

Test tốc độ lưu trữ hoạt động như thế nào?

Test đo hiệu năng lưu trữ trình duyệt bằng cách thực hiện các thao tác đọc và ghi:

1. Ghi IndexedDB: Test ghi 1.000 mục (mỗi mục 1 KB)
2. Đọc IndexedDB: Đo đọc 1.000 mục
3. Ghi localStorage: Test ghi 100 mục
4. Đọc localStorage: Đo đọc 100 mục
5. Xử lý File Lớn: Test đọc/ghi Blob 10 MB

Mỗi bài test tính thông lượng (MB/s) và độ trễ (ms mỗi thao tác). MB/s cao hơn và độ trễ thấp hơn cho hiệu năng tốt hơn.

IndexedDB và localStorage khác nhau như thế nào?

IndexedDB và localStorage là hệ thống lưu trữ trình duyệt với đặc điểm khác nhau:

localStorage:
- Lưu trữ key-value đơn giản
- API đồng bộ (chặn luồng chính)
- Giới hạn ~5-10 MB mỗi origin
- Chỉ lưu string (object phải JSON.stringify)
- Tốt cho UI state nhỏ

IndexedDB:
- Database đầy đủ với index và cursor
- API bất đồng bộ (không chặn)
- Hạn ngạch lớn hơn nhiều (thường gigabyte)
- Lưu structured clone (object, Blob, ArrayBuffer)
- Tốt nhất cho dataset lớn và app offline

Test này đo cả hai để bạn so sánh chi phí thực tế trên thiết bị.

Yếu tố nào ảnh hưởng tốc độ lưu trữ?

Nhiều yếu tố ảnh hưởng hiệu năng lưu trữ trình duyệt:

- Loại Ổ: SSD >> HDD
- Giao tiếp ổ: NVMe > SATA SSD > eMMC > HDD
- Dung lượng trống: Ổ đầy trên 80 % chậm lại (TRIM và over-provisioning thu nhỏ)
- Engine trình duyệt: Chromium dùng IndexedDB nền LevelDB; Firefox dùng SQLite
- Hệ điều hành: File system journaling, hành vi fsync và kích thước page cache đều quan trọng
- Tiến trình nền: Antivirus hoặc backup I/O cạnh tranh làm chậm đọc/ghi
- RAM: RAM trống nhiều hơn = page cache OS tốt hơn

Để có kết quả chính xác, đóng ứng dụng khác và đảm bảo còn nhiều dung lượng đĩa trống.

Điểm tốc độ lưu trữ bao nhiêu là tốt?

Hiểu kết quả tốc độ lưu trữ trình duyệt:

Tốc độ điển hình theo loại lưu trữ:
- NVMe SSD: 50-200+ MB/s trong trình duyệt (3-7 GB/s gốc)
- SATA SSD: 20-100 MB/s trong trình duyệt (550 MB/s gốc)
- HDD nhanh (7200 RPM): 5-20 MB/s
- HDD chậm (5400 RPM): 2-10 MB/s
- eMMC/UFS di động: 10-50 MB/s

Lưu ý: Overhead trình duyệt và ranh giới JavaScript làm tốc độ này chậm hơn I/O đĩa gốc 10-100 lần. Độ trễ dưới 1 ms cũng quan trọng cho UI nhạy.

Tại sao nên test lưu trữ trình duyệt?

Test lưu trữ trình duyệt có giá trị vì:

- Hiệu năng Web App: Cho thấy app web có thể lưu/lấy dữ liệu nhanh ra sao
- Progressive Web App (PWA): Quan trọng cho app hoạt động offline
- Cache trình duyệt: Ảnh hưởng thời gian tải trang và Service Worker
- Debug: Xác định nút thắt lưu trữ trước khi người dùng phàn nàn
- So sánh: Benchmark trình duyệt và thiết bị khác nhau

Test này phản ánh hiệu năng thực tế cho bất kỳ app web nào dựa vào API lưu trữ trình duyệt.

Tại sao ghi IndexedDB chậm hơn đọc?

Ghi IndexedDB thường chậm hơn đọc 2-10 lần vì mỗi lần ghi phải:

1. Lấy khóa độc quyền trên object store (đọc readonly dùng khóa chia sẻ)
2. Cập nhật index phụ đã định nghĩa (mỗi index = thêm ghi B-tree)
3. Ghi thêm vào write-ahead log để bền vững
4. Flush xuống đĩa khi commit transaction (fsync)

Ngược lại, đọc thường truy cập page cache của OS và trả về mà không chạm đĩa. Để tăng tốc ghi: gộp nhiều put trong một transaction (commit phân tán fsync), tránh index không cần thiết và dùng put() với key rõ ràng thay vì autoIncrement.

Test đọc ghi ổ cứng — Benchmark lưu trữ trình duyệt miễn phí với IndexedDB và localStorage. Đo MB/s đọc ghi, độ trễ mỗi thao tác và chạy nhiều
Test đọc ghi ổ cứng

Hạn ngạch lưu trữ của trình duyệt là gì và điều gì xảy ra khi đạt tới?

Trình duyệt hiện đại cấp cho origin một hạn ngạch dựa trên dung lượng trống và chính sách lưu trữ. Giới hạn điển hình:

- Chrome/Edge: tối đa 60 % đĩa trống mỗi origin
- Firefox: tối đa 50 % đĩa trống (hạn ngạch nhóm)
- Safari: 1 GB không hỏi, sau đó cần quyền người dùng

Truy vấn giới hạn thực với navigator.storage.estimate(), trả về {quota, usage} theo byte. Khi vượt hạn ngạch, transaction IndexedDB hủy với QuotaExceededError và localStorage ném tại setItem(). Lưu trữ bền vững via navigator.storage.persist() ngăn trình duyệt tự xóa dữ liệu khi đĩa bị áp lực.

Tại sao test file 10 MB đôi khi thất bại trên di động?

Trình duyệt di động giới hạn nhiều thứ có thể phá vỡ test Blob 10 MB:

1. Kích thước string: stringify Blob 10 MB cho localStorage gấp đôi thành 20 MB UTF-16; Safari iOS từ chối string trên 16 MB.
2. Áp lực heap: heap Chrome di động là 256-512 MB; cấp phát Blob cộng sao chép cho IndexedDB có thể gây OOM tab.
3. Hạn ngạch origin: thiết bị Android giá rẻ với bộ nhớ trong 8 GB có thể chỉ cấp 100-500 MB mỗi origin.
4. Eviction nền: nếu chuyển app giữa test, iOS có thể loại bỏ tab và transaction âm thầm bị hủy.

Để test đáng tin trên di động, giải phóng ít nhất 2 GB và giữ trình duyệt ở foreground. Công cụ này hiện dùng Blob nhị phân kích thước cố định (byte thực) thay vì string UTF-16 khổng lồ, nhẹ hơn nhiều cho bộ nhớ.

Trình duyệt và thiết bị nào hỗ trợ các bài test này, và kết quả có so sánh được không?

Ma trận hỗ trợ và khả năng so sánh:

- Chromium (Chrome/Edge/Brave/Opera): IndexedDB trên LevelDB, localStorage trên LevelDB. Hỗ trợ navigator.storage.estimate().
- Firefox: IndexedDB trên SQLite, localStorage trên SQLite. Hỗ trợ estimate().
- Safari/iOS WebKit: IndexedDB trên SQLite, hạn ngạch và giới hạn string khắt khe hơn; estimate() hạn chế.
- WebView Android cũ / IE: IndexedDB một phần hoặc không có.

Vì mỗi engine dùng backend lưu trữ khác nhau (LevelDB so với SQLite), con số MB/s tuyệt đối KHÔNG so sánh trực tiếp được giữa các trình duyệt. Hãy so sánh CÙNG một trình duyệt trên các thiết bị khác nhau, hoặc cùng thiết bị giữa các trình duyệt chỉ như tham khảo gần đúng. Luôn ghi rõ trình duyệt/UA (file xuất đã bao gồm) khi chia sẻ số liệu.

Đây có phải là tốc độ SSD hay HDD của tôi? Dùng để chứng nhận ổ đĩa được không?

Không. Công cụ này đo THÔNG LƯỢNG LƯU TRỮ TRÌNH DUYỆT, không phải tốc độ đĩa thô. Số liệu đi qua JavaScript, engine lưu trữ (LevelDB/SQLite), page cache của OS, journaling và fsync, nên thường chậm hơn I/O gốc 10-100 lần và phụ thuộc nhiều vào cache. KHÔNG dùng kết quả này để chứng nhận hay xếp hạng SSD so với HDD, xác nhận RMA ổ đĩa, hay trích dẫn số benchmark của nhà sản xuất. Hãy dùng công cụ gốc (CrystalDiskMark, fio, dd) để chứng nhận phương tiện. Test này dùng để chẩn đoán hành vi lưu trữ của app web và phát hiện eMMC thực sự chậm/hỏng so với jitter của cache thông qua các lượt chạy lặp lại.

Dữ liệu của tôi có bị tải lên không? Có riêng tư và an toàn không?

Test 100% chạy cục bộ. Nó chạy hoàn toàn trong trình duyệt của bạn, chỉ ghi vào vùng lưu trữ sandbox của origin hiện tại, và tự động xóa database IndexedDB thử nghiệm sau mỗi lượt chạy. Không gửi bất cứ gì lên máy chủ và không thu thập telemetry. Việc xuất CSV/JSON diễn ra phía client qua tải Blob. Lưu ý: navigator.storage.estimate() và navigator.storage.persist() yêu cầu ngữ cảnh an toàn (HTTPS); trên HTTP thường, trường dung lượng/sử dụng có thể hiện 'Không rõ' dù các bài test đọc/ghi vẫn hoạt động.

Làm sao chạy nhiều lượt và xuất kết quả cho ticket QA?

I/O lưu trữ trình duyệt nhiễu (page cache, I/O nền, thu gom rác), nên một lượt chạy đơn không đáng tin. Chọn 3 hoặc 5 ở bộ chọn Số lượt trước khi nhấn Bắt đầu: công cụ lặp lại toàn bộ bộ test và báo cáo thấp nhất, cao nhất, trung bình và trung vị cho mỗi bài để thấy độ dao động và phân biệt eMMC thực sự chậm/hỏng với jitter của cache.

Sau khi một phiên hoàn tất, nút Xuất CSV và Xuất JSON xuất hiện. File bao gồm khối tiêu đề (user agent thiết bị, dấu thời gian, số lượt yêu cầu, dung lượng/sử dụng lưu trữ) cùng tốc độ và độ trễ từng lượt và thống kê từng bài. Đính kèm vào ticket sửa chữa hoặc dùng để so sánh thiết bị với bằng chứng tái lập được.

Tính năng chính

  • 5 bài test tốc độ lưu trữ toàn diện
  • Benchmark ghi và đọc IndexedDB
  • Test ghi và đọc localStorage
  • Test xử lý file lớn (10MB)
  • Đo tốc độ tự động chuyển đơn vị (B/s đến GB/s)
  • Đo độ trễ theo milliseconds
  • Thống kê nhiều lượt thấp nhất/cao nhất/TB/trung vị
  • Xuất kết quả ra CSV và JSON
  • Hiển thị dung lượng và mức sử dụng
  • Tính tốc độ ghi và đọc trung bình
  • 100% chạy trên máy - không gửi dữ liệu
  • Tương thích chế độ tối