1ms的時間內java能幹什嗎?,1msjava

來源:互聯網
上載者:User

1ms的時間內java能幹什嗎?,1msjava

有沒有人想過1ms裡面java能做什嗎?很多人說電腦很快快到無法想象1ms的時間內java能做很多時間,有的人說java很慢1ms裡面做不了太多事情。今天我用實驗來告訴大家究竟1ms裡面java能做什麼,java究竟有多快(或者有多慢)

實驗背景CPU: i5-4200U記憶體: 8GEclipse實驗一讓java重複100次列印當前的毫秒數,夠簡單吧,沒有任何的邏輯操作,大家覺得java有多快?
public class A {public static void main(String[] args) {for (int i = 0; i < 100; i++) {System.out.println(System.currentTimeMillis());}}}
實驗輸出結果:
140607920063814060792006381406079200638……14060792006381406079200639140607920063914060792006391406079200639……14060792006391406079200639140607920063914060792006391406079200640……14060792006401406079200640

結果中重複的部分我用省略符號代替了。結果中出現了3個數,1406079200638出現了32次,1406079200639出現了59次, 1406079200640出現了9次我的機器連在1ms裡面迴圈100次列印都做不到。實驗二用一個Map儲存當前每一個毫秒的計數結果,每次迴圈從這個map中用當前的毫秒數為key擷取value,value是一個int型,然後把這個int型自增1之後列印出來,再儲存回去
計數器
/** * 計數器  * @author alexy * */public class B {private HashMap<Long, Integer> counter = new HashMap<Long, Integer>();public HashMap<Long, Integer> getCounter() {return counter;}public void setCounter(HashMap<Long, Integer> counter) {this.counter = counter;}}

列印邏輯
public class A {public static void main(String[] args) {B b = new B();for (int i = 0; i < 100; i++) {long time = System.currentTimeMillis();Integer count = b.getCounter().get(time);if(count == null){count = new Integer(1);System.out.println(time + " : " + count);b.getCounter().put(time, count);}else{int newCount = count.intValue() + 1;System.out.println(time + " : " + newCount);b.getCounter().put(time, newCount);}}}}

輸出結果:
1406080147962 : 11406080147962 : 21406080147963 : 11406080147963 : 21406080147963 : 31406080147963 : 41406080147963 : 51406080147963 : 61406080147963 : 71406080147963 : 81406080147963 : 91406080147963 : 101406080147963 : 111406080147963 : 121406080147963 : 131406080147964 : 11406080147964 : 21406080147964 : 31406080147964 : 41406080147964 : 51406080147964 : 61406080147964 : 71406080147964 : 81406080147964 : 91406080147964 : 101406080147964 : 111406080147964 : 121406080147964 : 131406080147964 : 141406080147964 : 151406080147964 : 161406080147964 : 171406080147964 : 181406080147964 : 191406080147964 : 201406080147964 : 211406080147964 : 221406080147964 : 231406080147964 : 241406080147964 : 251406080147964 : 261406080147964 : 271406080147964 : 281406080147964 : 291406080147964 : 301406080147964 : 311406080147964 : 321406080147964 : 331406080147964 : 341406080147964 : 351406080147964 : 361406080147965 : 11406080147965 : 21406080147965 : 31406080147965 : 41406080147965 : 51406080147965 : 61406080147965 : 71406080147965 : 81406080147965 : 91406080147965 : 101406080147965 : 111406080147965 : 121406080147965 : 131406080147965 : 141406080147965 : 151406080147965 : 161406080147965 : 171406080147965 : 181406080147965 : 191406080147965 : 201406080147965 : 211406080147965 : 221406080147965 : 231406080147965 : 241406080147965 : 251406080147965 : 261406080147965 : 271406080147965 : 281406080147965 : 291406080147965 : 301406080147965 : 311406080147966 : 11406080147966 : 21406080147966 : 31406080147966 : 41406080147966 : 51406080147966 : 61406080147966 : 71406080147966 : 81406080147966 : 91406080147966 : 101406080147966 : 111406080147966 : 121406080147966 : 131406080147966 : 141406080147966 : 151406080147966 : 161406080147966 : 171406080147966 : 18

java列印的情況並不平均,最多的情況下能打36次,最少的情況列印13次,最開始的那段是不完整的1ms所以不算
資料抖動範圍其實這個實驗不能給出最準確的結果,因為伺服器的配置肯定比我的電腦強,但是伺服器有時候的負載比較大,我的電腦在測試的時候又沒有運行任何別的程式,這點上我的電腦又可以加分。所以這個結果只是給大家一個感性的認知,並不作為最準確的實驗結果,歡迎大家發布在伺服器上的實驗結果。
怎麼樣?現在覺得java比你想象中的快還是慢?


Java,timer問題?

因為執行語句還需要時間,如果語句執行時間與間隔時間很近,那麼誤差就會很大,比如運行一次輸出語句需要0.1ms,那麼0.1ms後再間隔1ms,再輸出結果又需要0.1ms,那如此迴圈10次後,誤差就有1ms了,那每1秒鐘內誤差就有0.1s。
但是如果間隔時間是1s,已耗用時間還是0.1ms,再間隔1s輸出結果,那麼每10s才會有0.1ms誤差。
 
java可以幹什

Java能做的事可說多也可說少.Java不能直接操作記憶體所以他能做的事沒有C/C++多,但是他可以調用C/C++編寫的程式,也可算是什麼都能做了.

一般Java用於開發應用程式(B/S架構應用比較多),雖然Java也可以做嵌入式程式,但效能實在是太低所以沒有人這樣用.
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.