2011-02-10 34 views
5

Chỉ cần tự hỏi, nếu nó thường là một ý tưởng tốt để nén các tập tin jar sẽ được vận chuyển với một ứng dụng máy tính để bàn (không truy cập mạng vào lọ), nếu giải nén sẽ có tác động lớn hơn tập tin io.Tệp jar có nên được nén cho ứng dụng dành cho máy tính để bàn không?

CHỈNH SỬA: Cảm ơn bạn đã trả lời cho đến giờ và xin lỗi vì đã có một chút không rõ ràng ở đây. Tôi đã không nói về vận chuyển các lọ cho khách hàng, nhưng các định dạng tối ưu cho các tập tin jar trên đĩa khi ứng dụng bắt đầu lên. Tôi biết rằng các tệp jar là các tệp zip và có thể được phân phối với các mức nén khác nhau (hoặc không nén) và tôi đã trực tiếp tự hỏi cách nén sẽ thay đổi hiệu suất khởi động, không chỉ trên hộp dev của tôi (có ổ đĩa SSD nhanh trong đó) , mà còn trên các đĩa chậm hơn).

+0

Định dạng bên trong của một lọ java là một kho lưu trữ ZIP. Một trong hai công cụ có thể được sử dụng với một trong hai loại tập tin. Các tập tin có thể được nén (truy cập đĩa nhanh hơn) hoặc không nén (ít cpu). Để lại chúng khi bạn nhận được chúng. – BillThor

Trả lời

2

Tôi mong rằng câu trả lời tùy thuộc vào đơn đăng ký của bạn. Tuy nhiên, sẽ dễ dàng xác định thử nghiệm nếu các JAR nén cho khởi động nhanh hơn hoặc chậm hơn cho ứng dụng của bạn. Chỉ cần xây dựng tệp JAR ứng dụng của bạn với nén và nén, và so sánh thời gian khởi động ứng dụng. (Hãy thử trên các máy khác nhau, ví dụ với đĩa chậm, đĩa nhanh, SSD và với số lượng RAM khác nhau. Hãy ghi nhớ rằng một số tệp bộ nhớ cache OSes tích cực và tính đến điều này trong các phép đo thời gian của bạn.)

bạn đang ở đó, bạn cũng nên điều tra tác động của mức độ nén khác nhau (thông qua các tùy chọn lệnh jar) và sử dụng pack200


có nói rằng, cảm giác ruột của tôi là sự khác biệt giữa nén và không nén cho cài đặt cục bộ JAR sẽ đủ nhỏ để người dùng khó có thể nhận thấy sự khác biệt.

1

Trong hầu hết mọi tình huống máy tính để bàn hợp lý, chi phí của đĩa IO cao hơn chi phí nén. Nó gần như chắc chắn sẽ là một chiến thắng để nén các tập tin.

Điều đó nói rằng, tệp JAR đã được nén. Gấp đôi việc nén thường không đáng để nỗ lực. Vì vậy, tôi muốn nói không, không nén các tệp JAR của bạn vì chúng đã được nén.

+3

Tôi nghi ngờ câu hỏi của OP có nhiều hơn để làm cho dù họ nên nén * JAR của họ trước khi giao hàng - không nén các tập tin người khác đã cho họ. Các tệp JAR không cần phải nén - nó chỉ là một tệp nén và khá hợp lý để không nén nội dung. –

+1

* "Trong hầu như mọi tình huống máy tính để bàn hợp lý, chi phí của đĩa IO cao hơn chi phí nén. Nó gần như chắc chắn sẽ là một chiến thắng để nén tệp." * - Tôi không chắc đó là sự thật. Trên một hộp Linux với nhiều bộ nhớ, các tệp sẽ được lưu trữ trong bộ nhớ của hệ điều hành. Tốc độ đọc có thể (theo lý thuyết) tiếp cận tốc độ của bản sao bộ nhớ đến bộ nhớ. –

+0

Tôi không tin rằng các tệp được lưu vào bộ nhớ cache lúc đầu, nhưng các khối dữ liệu tệp sẽ nằm trong bộ nhớ cache khi ứng dụng đã tải một vài lớp. Ít nhất là các khối được bao phủ với các tệp lớp. – Daniel

Các vấn đề liên quan