Chương trình java chạy chậm hơn ở máy tính cấu hình cao hơn?

java

(nguyen ta long) #1

Tôi có một chương trình dùng để tìm ra tất cả các chuỗi con chung có độ dài lớn hơn k của 2 chuỗi. Tôi chạy trên máy tính để bàn số 1 là i7, ram 16g (ddr4), ổ cứng ssd 1T lại chậm hơn rất nhiều ở máy số 2 cũng là i7, ram 8g (ddr3), ổ ssd 512 . Nói chung các thông số phần cứng của máy 1 đều cao hơn máy 2. Mong mọi người giúp đỡ chỉ ra vì sao như vậy. Vừa mua con máy mới về, cấu hình ngon hơn mà ko dùng được thì chết. Tôi sẽ hậu tạ…


(Trần Hoàn) #2

Anh đưa chi tiết cấu hình 2 máy lên đi ạ?


(nguyen ta long) #3
  • máy 1: Dell vostro 3670 MT, i7-8700(3.2ghz 12MB, thế hệ thứ 8) 16GB DDR4/ SSD 1T;

  • máy 2: Dell OptiPlex 3040, core i7 - 6700 @ 3.4ghz 3.41ghz, 8GB DDR3/ SSD 500gb.

Cả hai máy cùng cài hệ điều hành, cùng cài một bản java, cùng chạy một chương trình java. Vậy mà máy 2 lại nhanh hơn rất nhiều. Có phải do con CPU máy 2 la 3.4? Rất mong anh em giúp đỡ. mấy ngày hôm nay không tìm đươc lý do vì sao.


(Leo2T) #4

Cho hỏi bạn đã cấu hình VM của java 2 máy như thế nào? Còn nữa là nó chậm là chậm ntn? Run app lên chậm? hay thực thi tính toán chậm?


(nguyen ta long) #5

cám ơn anh em đã quan tâm.
khi chạy chương trình lên, đến phần chạy thuật toán tìm các xâu con chung giữa hai chuỗi thì ở máy thứ nhất nó tính toán rất lâu mới ra kết quả. trong khi đó máy 2 đã tính xong rồi. ra kết quả đều như nhau.
cả hai máy đều cài jdk1.8.0 vào ổ c. từ màn hình cmd chạy câu lệnh java -jar myfile.jar


(NeiK) #6

bạn kiểm tra heap size nhé. Theo mình heap size 2 jvm khác nhau.
https://www.mkyong.com/java/find-out-your-java-heap-memory-size/


(nguyen ta long) #7

câu lệnh chay file jar của chương trình trên 2 máy đều là:

java -Xms512m -Xmx1024m -jar myfile.jar

hoặc

java -Xms2G -Xmx4G -jar myfile.jar

kết quả máy 1 vẫn chạy chậm hơn máy 2 rất nhiều. tìm mãi vẫn chưa biết tại sao. có ai giúp mình với.


(Phạm Tiến Đạt) #8

2 máy mới mua hay 1 máy mới mua 1 máy xài lâu rồi ? Nếu là cái thứ 2 thì có thể ảnh hưởng đến hiệu năng đấy (do bụi)


(Trong Hieu Nguyen) #9

Up source code cái file java lên xem. Có thể có vấn đề gì đó liên quan đến multi-thread.


(nguyen ta long) #10

Cùng một chương trình và không dùng multi-thread Trong Hieu Nguyen ơi. máy 1 là máy vừa mua về, máy 2 là máy cũ. Tưởng cấu hình ngon hơn sẽ chạy nhanh hơn, đề xuất sếp cho mua, giờ …không biết nói thế nào.


(Nguyen Ca) #11

bác dùng các tool monitor JVM để trace nguyên nhân, không thì không biết được đâu, một trong các tool là jconsole


(nguyen ta long) #12

Nguyên nhân là có một hàm chạy ở máy mới mất rất nhiều thời gian, vẫn hàm đó, chạy ở máy cũ lại không mất thời gian như vậy. Vậy mới không biết xử lý thế nào.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?