Tôi đang sử dụng fs.Length
, trong đó fs
là FileStream
.Cách nhanh nhất để đọc chiều dài tệp C#
Đây có phải là hoạt động O(1)
không? Tôi sẽ nghĩ rằng điều này sẽ chỉ đọc từ các thuộc tính của tập tin, như trái ngược với đi qua các tập tin để tìm khi vị trí tìm kiếm đã đạt đến kết thúc. Tệp tôi đang cố gắng tìm độ dài có thể dễ dàng nằm trong khoảng từ 1 MB đến 4-5 GB.
Tuy nhiên tôi nhận thấy rằng có một lớp học FileInfo
, cũng có thuộc tính Length
.
Cả hai thuộc tính này đều có cùng một khoảng thời gian không? Hoặc không phải là fs.Length
chậm hơn vì trước tiên nó phải mở FileStream
?
xấu xa, cảm ơn thông tin thời gian! – jpints14
Đo điểm chuẩn theo cách đó có thể không phải là cách hiệu quả nhất để kiểm tra sự khác biệt (nếu có). Tôi tưởng tượng đĩa đệm/os yếu tố sẽ được chơi một phần đáng kể trong việc giữ thời gian xuống. – PaulG
@PaulG Bạn đúng vậy. Điểm chuẩn là ** luôn ** phức tạp hơn vẻ bề ngoài. Chỉ tiêu đơn giản ở trên ** chỉ ** cho chỉ báo _some về kết quả thực tế. Vì nó không trả về 100000 so với 250, tôi nghĩ rằng có thể kết luận rằng cả hai phương thức đều không có quá nhiều khác biệt (về thời gian tính toán). – ken2k