Khám Phá “hậu Trường” Phía Sau Màn Hình Loading - Genk

Sự "kỳ diệu" của quá trình nạp ứng dụng

Màn hình "Đang tải" hay "Đang nạp" (Loading Screen) là màn hình mà bạn sẽ bắt gặp đầu tiên khi khởi động bất cứ một ứng dụng hay trò chơi nào đó. Càng nhìn thấy nó thường xuyên cũng đồng nghĩa rằng chúng ta ngày càng… chán và mong màn hình trên kết thúc càng sớm càng tốt để còn tiếp tục sử dụng.

Hầu hết chúng ta đều nghĩ rằng "đang nạp" chỉ đơn giản là quá trình chuyển dữ liệu từ ổ đĩa vào bộ nhớ, tuy nhiên đây chỉ là một phần của quá trình nạp (load) ứng dụng mà thôi, ẩn đằng sau dòng chữ đó còn có rất nhiều quá trình khác được thực hiện trước khi ứng dụng sẵn sàng để sử dụng.

Ảnh: YouTubeẢnh: YouTube

Bài viết dưới đây do trang Maximum PC thực hiện sẽ giải thích cho bạn về những quá trình trên, phần nào "vén màn bí mật" về dòng chữ dù ta nhìn thấy hằng ngày, nhưng lại chẳng biết nó có ý nghĩa gì.

"Vòng đời" của một ứng dụng

Vòng đời sử dụng của một ứng dụng có thể được tóm tắt bằng sơ đồ sau:

Màn hình Loading thực chất là "vỏ bọc" nhằm che giấu các quá trình mà ứng dụng đang thực hiện như chuyển dữ liệu và khởi tạo môi trường trước khi ứng dụng bắt đầu hoạt động (riêng một số tựa game có thêm đoạn video giới thiệu hoặc logo của nhà phát hành trước khi màn hình Loading hiển thị - tuy nhiên việc đoạn video đó có bao gồm quá trình nạp ứng dụng hay không, đó lại là một đề tài khác).

Trong một số trường hợp, không phải tất cả mọi thứ đều được nạp vào và xử lý cùng lúc, ứng có thể nạp một phần dữ liệu, xử lý phần đó, rồi tiếp tục nạp và xử lý phần tiếp theo, quá trình cứ lặp đi lặp lại đến khi các dữ liệu đã được di chuyển và xử lý hết. Một số game hay ứng dụng hiển thị các mẹo sử dụng lên màn hình trong quá trình nạp, nhưng tất cả chúng đều chưa thể sử dụng được trước khi quá trình nạp đến bước "Sẵn sàng hoạt động".

Chuyển dữ liệu từ ổ đĩa sang RAM

Ảnh minh họa: Fscs.caẢnh minh họa: Fscs.ca

Là quá trình dữ liệu của ứng dụng được chuyển từ ổ lưu trữ vào bộ nhớ RAM, đây là quá trình được xem là "có thể nhìn thấy", bởi nếu bạn mở ứng dụng từ một ổ lưu trữ có tốc độ nhanh thì tốc độ chuyển dữ liệu của ứng dụng đó sang RAM sẽ nhanh hơn, từ đó làm giảm thời gian nạp ứng dụng.

Nhưng ngoài tốc độ truyền phải nhanh thì số lượng dữ liệu cần chuyển cũng ảnh hưởng đến thời gian thực hiện quá trình này. Với mỗi file được chuyển, ổ đĩa phải thực hiện tìm kiếm vị trí của file và bắt đầu truy cập vào nó; đây được gọi là "thời gian định vị" (seek time). Để đưa ra ví dụ về sự ảnh hưởng của số lượng tập tin đến thời gian chuyển dữ liệu, chúng tôi đã thực hiện 2 thử nghiệm sau:

1. Chuyển 1 triệu file có dung lượng 1KB, tổng cộng 1GB

2. Chuyển 1 file duy nhất có dung lượng 1GB

Sử dụng thiết bị lưu trữ A với tốc độ băng thông 1GB/s, thời gian định vị trung bình 5 mili-giây và thiết bị lưu trữ B có tốc độ băng thông 100MB/s và thời gian định vị trung bình 0.05 mili-giây, kết quả cho ra như sau:

1. Thiết bị A chuyển 1 triệu file 1KB trong 5,000 giây (tức khoảng 1 tiếng 23 phút), chuyển 1 file 1GB trong 1 giây.

2. Thiết bị B chuyển 1 triệu file 1KB trong khoảng 1 phút, chuyển 1 file 1GB trong khoảng 10 giây.

Ảnh minh họa: Axetech.comẢnh minh họa: Axetech.com

Như vậy, có thể thấy việc chuyển 1 file duy nhất sẽ nhanh hơn việc chuyển nhiều file có tổng dung lượng tương tự dung lượng của 1 file. Thực chất, có rất ít tình huống trong thực tế buộc bạn phải di chuyển 1 triệu file trong cùng 1 lúc. Với những trò chơi, đây cũng là lý do các nhà phát triển thường kết hợp dữ liệu của game vào trong 1 file có dung lượng lớn, vì quá trình định vị sẽ chỉ diễn ra 1 lần, tất cả những gì ứng dụng cần chỉ là "Hãy đến vị trí của file này, lấy dữ liệu từ nó". Còn nếu chia ra nhiều file bao nhiêu thì quá trình định vị file cũng diễn ra bấy nhiêu lần.

Riêng với một số ứng dụng khác, đặc biệt là các ứng dụng đồ họa có nhiều plug-in hỗ trợ được cài thêm thì chắc chắn nó sẽ yêu cầu nhiều file dữ liệu hơn, suy ra việc định vị file cũng diễn ra nhiều lần -> kéo dài thời gian nạp ứng dụng.

Khởi tạo môi trường

Khi dữ liệu đã được chuyển hết về RAM, về mặt kỹ thuật, ứng dụng bắt đầu hoạt động. Nhưng bạn vẫn chưa thực sự sử dụng được nó. Hãy lấy ví dụ về quá trình khởi động của Linux (được tóm tắt từ IBM ):

1. Nạp file ảnh nén của kernel vào RAM

2. Giải nén file ảnh và khởi động kernel

3. Khởi tạo phần cứng phụ thuộc vào môi trường

4. Khởi chạy "Init" (hoặc "systemd" trên một số bản phân phối)

5. "Init" sẽ khởi tạo nhiều quá trình khác nhau tùy thuộc vào cấu hình của người dùng trước khi hiển thị bảng nhập dòng lệnh hoặc giao diện người dùng để bạn bắt đầu sử dụng hệ thống

Ảnh minh họa: Linux SysadminsẢnh minh họa: Linux Sysadmins

Có thể thấy việc khởi động một hệ thống trải qua khá nhiều bước, và chuyển dữ liệu vào RAM chỉ là một phần nhỏ trong cả một quá trình trên. Điều này gợi ý, bộ vi xử lý của máy cũng có một phần trách nhiệm trong quá trình nạp một ứng dụng, do đó nâng cấp hiệu năng của bộ vi xử lý có thể giúp quá trình nạp được diễn ra nhanh hơn.

Tìm hiểu sâu hơn

Để biết chi tiết quá trình nạp gồm những gì, chúng tôi sẽ khởi động một vài ứng dụng rồi kiểm tra chúng bằng công cụ Windows Performance Monitor. Vì quá trình nạp ứng dụng bị ảnh hưởng bởi vi xử lý và ổ lưu trữ, nên chúng tôi sẽ xem xét một số đặc điểm sau:

- Hiệu suất sử dụng bộ vi xử lý

- Số byte được đọc trên mỗi giây

- Số lần đọc đĩa mỗi giây

Còn đây là các ứng dụng được chúng tôi tiến hành thử nghiệm:

1. GTA 5 (nạp từ file save game, kiểm tra dừng lại ngay khi game có thể chơi)

2. Portal 2 (bắt đầu game mới, kiểm tra dừng lại ngay khi game có thể chơi)

3. Linux Mint (từ thời điểm boot đến màn hình desktop)

4. Windows 7 (từ thời điểm boot đến màn hình desktop)

Do không có cách nào để đo dữ liệu trực tiếp từ máy thật, nên Linux Mint và Windows 7 được chúng tôi chạy từ máy ảo VirtualBox.

Cấu hình máy thử nghiệm như sau:

- CPU: Intel Core i5-4670K (kiểm tra ở 2 trường hợp đặt xung nhịp 2GHz và 4GHz)

- Bo mạch chủ: ASRock Z87E-ITX

- RAM: Crucial Ballistix Sport DDR3-1600 8GB x 2 (tổng cộng 16GB)

- GPU: EVGA GeForce GTX 980 Superclocked

- Ổ cứng: Samsung 840 EVO 500GB WD Caviar Black 2TB

- Hệ điều hành: Windows 10 64-bit

Kết quả ghi nhận:

1. GTA 5

Băng thông đọcBăng thông đọcSố tiến trình đọcSố tiến trình đọcHiệu suất sử dụng CPU trung bìnhHiệu suất sử dụng CPU trung bình

Quá trình nạp dữ liệu của GTA 5 có 2 lần diễn ra với lượng dữ liệu được xử lý cao nhất, đây là lúc game bắt đầu hoàn tất nhiều thứ trước khi sẵn sàng được chơi. Trong trường hợp này, CPU 2GHz với ổ SSD tốn lượng thời gian gần tương đương với CPU 4GHz với ổ HDD.

2. Portal 2

Băng thông đọcBăng thông đọcSố tiến trình đọcSố tiến trình đọcHiệu suất sử dụng CPU trung bìnhHiệu suất sử dụng CPU trung bình

Portal 2 nạp khá nhiều dữ liệu vào lúc đầu, nhưng càng về sau thì chúng càng ít đi. Portal 2 không chiếm dụng quá nhiều tài nguyên CPU, bởi lẽ đây là một tựa game cũ, không có những chi tiết đồ họa sắc nét và "nặng nề" như GTA 5. Trong trường hợp này, CPU 2GHz với SSD có vẻ xử lý nhanh hơn so với CPU 4GHz với ổ HDD.

3. Linux Mint

Ảnh: Linux MintẢnh: Linux MintBăng thông đọcBăng thông đọcSố tiến trình đọcSố tiến trình đọcHiệu suất sử dụng CPU trung bìnhHiệu suất sử dụng CPU trung bình

Linux trong một lúc nạp khá nhiều dữ liệu. Phần cuối của quá trình nạp dữ liệu có vẻ được dành khá nhiều để thiết lập môi trường hoạt động, bao gồm nạp driver phần cứng, khởi chạy các dịch vụ (như mạng), và khởi động giao diện người dùng.

Trường hợp này cũng cho thấy CPU 4GHz với HDD nhanh hơn so với CPU 2GHz dùng SSD. Lưu ý kết quả được thử nghiệm trên một hệ điều hành "sạch sẽ", việc cài thêm các chương trình bên ngoài có thể làm thay đổi kết quả.

4. Windows 7

Ảnh: WikipediaẢnh: WikipediaBăng thông đọcBăng thông đọcSố tiến trình đọcSố tiến trình đọcHiệu suất sử dụng CPU trung bìnhHiệu suất sử dụng CPU trung bình

Windows 7 cũng khá giống Linux, bắt đầu với việc chuyển một lượng dữ liệu lớn nhưng dành phần lớn thời gian sau đó để xử lý và nạp chúng. Băng thông đọc thấp là kết quả khá thú vị. Có thể từ lúc băng thông đọc thấp đi cũng là lúc Windows đang định vị các file nhỏ hơn để nạp chúng.

Không giống Linux, việc dùng SSD trên Windows có vẻ mang lại nhiều lợi ích hơn. Với SSD, CPU 2GHz mất khoảng 20 giây để khởi động, trong khi con số đó trên CPU 4GHz chỉ là 15 giây. Với HDD cũng tương tự, 47 giây và 43 giây. Trường hợp này cũng chứng minh tại sao người dùng bây giờ thích SSD hơn.

Sự kết hợp giữa sức mạnh xử lý và tốc độ ổ cứng

Sự kết hợp giữa 2 yếu tố trên ảnh hưởng khá nhiều đến thời gian nạp ứng dụng. Tuy các dữ liệu trên không suy ra chính xác khi nào thì ứng dụng bắt đầu chuyển chúng và khi nào chúng được xử lý, đây là một số điều rút ra từ thử nghiệm trên:

- Với ổ cứng SSD, dữ liệu có thể được chuyển nhanh hơn

- Một bộ xử lý nhanh hơn có thể làm giảm thời gian nạp ứng dụng

- Trong nhiều trường hợp, bộ xử lý nhanh hơn với ổ HDD có hiệu suất tương tự như bộ xử lý chậm kết hợp với ổ SSD

Kết luận

Tóm lại, một khi ứng dụng đã được nạp xong thì trong suốt quá trình sử dụng, hầu hết chúng đều không phải thực hiện lại qua quá trình này. Một số trường hợp ngoại lệ như hệ điều hành, chúng thực hiện định vị dữ liệu nhiều hơn so với các ứng dụng thông thường. Do đó, ngoài chuyện sử dụng SSD thì một bộ xử lý có tốc độ nhanh cũng góp một phần quyết định thời gian nạp ứng dụng.

Nếu muốn tăng thời gian nạp ứng dụng, chắc chắn bạn sẽ không ngần ngại nâng cấp bộ xử lý và ổ cứng của mình, nếu không dư dả thì bạn có thể vẫn giữ nguyên HDD hiện tại, nâng cấp lên bộ xử lý nhanh hơn rồi sau đó sẽ nâng cấp lên SSD khi có thể. Ngoài ra, bạn đọc cũng đã phần nào biết được một chút chuyện "bếp núc" phía sau màn hình nạp ứng dụng rất đỗi quen thuộc này.

Theo Báo diễn đàn đầu tư

[Video] Khám phá trung tâm dữ liệu khổng lồ của Facebook

Từ khóa » Hình Loading