2015-05-06 40 views
1

因爲我想用$ ajax(或jQuery.getJSON)方法每秒多次接收大量數據,我不知道將長浮點值(1.23242342344 ...)舍入爲短版本是否有意義。舍入值是否加速JSON通信(ajax)?

據我所知,如果它的2.2或2.202312323在大多數編程語言中沒有區別,因爲兩者都保留了浮點空間,但我不確定JSON如何處理這個問題,也許它更像一個字符串,並且該字符串會變得更短,四捨五入值?

那麼,我可以加快帶有四捨五入值的JSON調用嗎?

+1

你只需要爲每個浮點保存幾個字節,對於大多數應用程序來說,這是完全不重要的。在其他地方尋找優化:0 – hanshenrik

+0

是的,它會使Json字符串更短更快,但是隻有當數據很多時纔會觀察到這種改進。 – Puneet

+0

是的,JSON字符串會稍微短一些。值得?很難說,可能不是。與恆定的HTTP開銷和網絡延遲相比,您可以削減多少個字節? – Thilo

回答

1

舍入值會產生變化,與您傳輸的數據量成正比。

所有HTTP通信都使用字符串完成,JSON是傳輸數據的字符串格式。 因此12.3456789將需要10個字節,因爲12只需要2個字符(每個字符一個字節)。

+0

謝謝,這正是我想知道。如果它真的對我的用例很重要(在評論中)當然是一個不同的問題 - 你對此有何看法?例如。這可能與數據量有關? – lakerz

+0

我不能猜出你的確切要求。但是作爲一種迴歸計算:如果您有10條線路,每條線路1K點,則每個請求的數字爲10K。假設在點之前有2位數字和平均值爲6位小數,未經取捨的將是每個請求90K個數字,或每秒2.7MB(太多)。如果你四捨五入到小數點後,你會下降到每秒0.6MB(下降78%,但仍然太多)。最重要的是,您需要添加JSON格式和HTTP的開銷,但無論您是否舍入,這都是一樣的。 – idrosid

+0

謝謝你,這是令人印象深刻的 - 而且還有一個很大的改進,甚至更多,我只是保存了我的json數據,並且每個請求大約140KB而沒有四捨五入。而這隻有6k點(長度一點:0.38863413810902986)。 所以四捨五入可能肯定有幫助,因爲(現在)我只想用於Intranet(或大多數在同一臺計算機上),每秒0.6MB可能沒問題。轉移到網絡我想最好的辦法是減少點。 – lakerz