• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tốc độ vòng for va Do

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

akth8283
Thành viên chính thức
Thành viên chính thức
Bài viết: 20
Ngày tham gia: T.Năm 18/08/2005 10:16 am
Đến từ: sao hoa~
Been thanked: 1 time
Liên hệ:

Tốc độ vòng for va Do

Gửi bàigửi bởi akth8283 » T.Bảy 25/06/2016 8:12 pm

tai. sao khi chạy trong môi trường vb thi for nhanh hơn Do ? nhưng khi tạo thành file exe thi Do lai nhanh hơn For?
Tập tin đính kèm
Untitled.jpg


nak

Hình đại diện của người dùng
Dark.Cosmos
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 71
Ngày tham gia: T.Sáu 21/11/2014 3:58 am
Has thanked: 24 time
Been thanked: 14 time
Liên hệ:

Re: Tốc độ vòng for va Do

Gửi bàigửi bởi Dark.Cosmos » T.Năm 13/07/2017 12:37 pm

Hỏi hay lắm. (y)
Mình mạn phép trả lời nhé, có gì không đúng mong góp ý.


Ở hàm "for", giả sử for i = 0 to 2000000000 thì "for" sẽ sử dụng toán tử so sánh bé hơn hoặc bằng, ở đây là so sánh xem i có bé hơn hoặc bằng 2000000000 hay không.

Còn trong đoạn code ví dụ của bạn. Hàm "Do" của bạn sẽ Loop Until i = 2000000000, vậy nên nó sử dụng toán tử so sánh bằng, ở đây là so sánh xem i có bằng với 2000000000 hay không.

Toán tử so sánh bé hơn hoặc bằng thực chất là toán tử OR của 2 toán tử: bé hơn, bằng
Qua đó bạn có thể thấy toán tử so sánh <= sẽ xử lý lâu hơn toán tử =.
Đó là lý do tại sao code của bạn "Do" lại xử lý ít thời gian hơn "For".

Nếu bạn sửa lại 1 chút ở dòng "Loop until i = 2000000000" thành "Loop until i >= 2000000000" thì mình nghĩ lúc này thời gian xử lý của "Do" và "For" là xấp xỉ nhau.

Còn vấn đề thời gian xử lý khác nhau khi chạy trong môi trường IDE và khi đã biên dịch thành file exe thì mình nghĩ do trong môi trường IDE ngoài executable code ra, nó còn có debug. Theo mình nghĩ ở môi trường IDE thì code được dịch, xử lý tạm thông qua module "VBA6.DLL".


Nếu có sai sót gì mong mọi người bỏ qua và giúp mình hoàn thiện!
Thanks!
Triệu người quen có mấy người thân, khi lìa trần có mấy người đưa?
DK Cosmos


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.4 khách