[英]What is the complexity of JSON.parse() in JavaScript?
標題說明了一切。 我將要解析一個非常大的JSON字符串,並且好奇這個內置方法的復雜性。
我希望它是θ(n),其中n是字符串中的字符數,因為它可以確定是否存在語法錯誤。
我試過搜索,但無法想出任何東西。
JSON是非常簡單的語法,甚至不需要前瞻。 一旦GC不涉及,那么它純粹是O(n)
。
我不知道瀏覽器中的實現,但您的假設在某一點上是正確的。 如果JSON主要包括字符串,那么它將是直接的並且非常線性。 如果你有很多浮點數,轉換數字會花費一些時間,但又是非常線性的(數字越多,數字越長,但與長字符串相比......非常相似)。
由於在大多數情況下,數組和對象被聲明為映射,因此內存分配會根據需要增長,並且通常是線性的。 許多(如果不是大多數)實現將使用Java作為后端。 這意味着垃圾收集,因此很難確定轉換所有數據所需的時間,因為它很大程度上取決於目標計算機上使用的內存模型的大小以及垃圾收集運行。 但是,它通常應該隨着項目添加到地圖而增長,因此它看起來大部分都是線性的。 我不希望實現使用realloc()這意味着復制數據,因此隨着數組/對象變得越來越大而越來越慢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.