<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
做vue後臺的時候,有一個匯出所有使用者資料的需求,我這裡是前端匯出,用的是iview的exportCsv方法,在這裡說說遇到的問題吧。
首先看這裡,查詢的時候,Size有155MB,最開始在谷歌、火狐之類的上面測試,一切正常,後來被提出在360瀏覽器裡頁面直接崩潰。
因為拿到後端傳過來的陣列後,賦值給了data裡面的一個陣列,即this.xxx = res.list(res.list為後端傳來的陣列),程式碼每次執行到這裡就崩潰了,聽別人給我說的是data資料太多導致記憶體溢位,讓我別雙向繫結了,那麼我就吧上面那行程式碼註釋掉,就成功了。
順便再補充一個方法,使用freeze,只需要吧 this.xxx= res.list 改成 this.xxx = Object.freeze(userList)
只不過,不太推薦用freeze這個方法,如上圖所示,155MB的時候可以正常使用,後邊又用171MB的資料測試了下,瀏覽器又崩了!!!(該死的國產瀏覽器)
最近遇到一個需求,需要在地圖上顯示某地區的路網線路,結果後端直接返回了3w多條資料
每條線路下座標點接近100個
這四捨五入就是300w的資料啊。
而且還不能分層級顯示,只能一次性顯示全部打點,沒辦法,硬著頭皮放到地圖上吧。
開發完成,開啟網頁,拖動地圖,偶爾出現了卡頓的情況,但是,上線吧,能用就行
3天后
產品經理:誒,這資料怎麼不會變啊,你加個輪詢定時請求吧,還有地圖能不能有點動態效果,隔一段時間隨機定位到某個地點吧,然後地圖打點點選要有詳細資料的彈窗
打工人:…
加上輪詢,開啟網頁,拖動地圖,出現了明顯的掉幀和卡頓的情況,但是,上線吧,能用就行
一天後
產品經理:頁面沒怎麼操作,怎麼放著放著就崩了
打工人:…
開啟控制檯,開啟工作管理員,發現初次載入頁面記憶體就佔用了接近1G
第一次輪詢,記憶體佔用1.4G
第二次輪詢,記憶體佔用1.8G
每次輪詢,記憶體佔用就增大了400M,好傢伙,這樣下去1T的記憶體都不夠用啊(況且一個tab記憶體佔用到4G左右頁面就崩潰了)
這…不對啊,我明明地圖物件都移除了,資料也是重置了啊,記憶體怎麼一直在增大呢?
於是開始了修bug之路
經過反覆偵錯和定位,發現是vue資料深度監聽和地圖物件存在參照關係導致記憶體無法釋放(懷疑)
那這個問題好解決啊,禁用vue深度監聽不就好了嗎
因為本專案中請求的資料只用於展示,不會對資料作修改,所以只需要在賦值data前把資料凍結即可
this.list = Object.freeze(list)
由於資料被凍結,所以vue無法深度遍歷資料給資料新增get和set屬性,這樣就減少了資料監聽帶來的問題,而且在巨量資料量的情況下**Object.freeze()**非常有用
**Object.freeze()**方法可以凍結一個物件,一個被凍結的物件再也不能被修改,當然你可以將變數的參照替換掉
不能新增新屬性不能刪除已有屬性不能修改已有屬性的可列舉性、可設定性、可寫性不能修改已有屬性的值不能修改原型
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45