日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用DevEco Studio Profiler工具的ArkTS內(nèi)存泄漏分析案例

HarmonyOS開發(fā)者 ? 來源:HarmonyOS開發(fā)者 ? 2026-06-03 11:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

鴻蒙ArkTS與Native(C/C++)交互的開發(fā)場景中,ArkTS對象被Native引用導(dǎo)致的內(nèi)存泄漏問題是開發(fā)者的一大痛點(diǎn)。

這類問題的傳統(tǒng)定位方式高度依賴開發(fā)者具備深厚的技術(shù)積累,不僅要求開發(fā)者要精通ArkTS引擎垃圾回收機(jī)制、鴻蒙NAPI交互模型等基礎(chǔ)理論,還要深入理解應(yīng)用代碼的實(shí)現(xiàn)細(xì)節(jié),尤其在應(yīng)用由多個(gè)模塊組成、模塊間依賴關(guān)系復(fù)雜的場景下,問題定位復(fù)雜度倍增。

這種高門檻導(dǎo)致許多開發(fā)者,尤其是初學(xué)者,在面對ArkTS對象被Native引用導(dǎo)致內(nèi)存泄漏問題時(shí)往往無從下手,只能通過參考典型案例、分析大量業(yè)務(wù)代碼來進(jìn)行問題定位,效率較為低下。

為了幫助開發(fā)者更高效地定位和解決此類內(nèi)存泄漏問題,DevEco Studio 的 Profiler 工具迎來了重大升級!本次更新增強(qiáng)了 Allocation 內(nèi)存分析能力,新增了 ArkTS Snapshot 泳道,支持 Local Handle 和 Global Handle 采樣模式,在跨語言調(diào)用場景中,打通 ArkTS 和 C++ 語言邊界,內(nèi)存泄漏大小和泄漏對象信息易觀測,問題定位效率倍增。

本文中,我們將結(jié)合DevEco Studio Profiler 工具,系統(tǒng)梳理 ArkTS 對象被Native 引用導(dǎo)致內(nèi)存泄漏的定位思路、實(shí)操步驟與最佳實(shí)踐。

為什么 ArkTS 對象會(huì)被 Native “鎖死”?

ArkTS 對象被 Native 引用導(dǎo)致內(nèi)存泄漏的根因在于 Native 代碼通過napi_ref或不當(dāng)使用napi_value,導(dǎo)致長期持有 ArkTS 對象,形成了“隱形強(qiáng)引用”,阻斷了 ArkTS 引擎的垃圾回收。

在鴻蒙 NAPI 交互模型中,Native 代碼引用 ArkTS 對象主要依賴兩種句柄:Local Handle(napi_value): 通常指在 Native 代碼執(zhí)行上下文中創(chuàng)建的、作用域較短的引用,由 handle scope 來管理。

Global Handle (napi_ref): 這是一種由開發(fā)者自行管理生命周期的強(qiáng)引用。

ArkTS引擎的垃圾回收是基于“可達(dá)性分析”算法實(shí)現(xiàn)的,當(dāng)ArkTS側(cè)所有引用(變量、閉包等)被清除后,對象理論上應(yīng)被回收。一旦Native代碼通過napi_refnapi_value不當(dāng)持有該對象,這兩種句柄會(huì)在GC圖中成為一個(gè)“根節(jié)點(diǎn)”。即使ArkTS側(cè)已徹底斷開引用,GC仍會(huì)判定該對象“可達(dá)”,導(dǎo)致無法回收。久而久之,未釋放的句柄堆積,演變?yōu)閮?nèi)存溢出問題。

升級后的Allocation 內(nèi)存分析工具能做什么?

在定位ArkTS對象被Native引用引發(fā)的內(nèi)存泄露問題時(shí),開發(fā)者常受限于工具或日志信息不足,難以追溯具體是哪塊Native代碼在持有著它。這導(dǎo)致泄漏邊界模糊、引用鏈斷裂,定界分析極為困難。升級后的Allocation工具實(shí)現(xiàn)了關(guān)鍵突破——支持ArkTS對象和Native引用分配調(diào)用棧 的雙向關(guān)聯(lián),可精準(zhǔn)追溯持有權(quán)屬,快速還原跨語言引用關(guān)系鏈,大幅降低定位門檻。

ArkTS內(nèi)存泄漏分析案例

案例背景

現(xiàn)象:本案例中,通過復(fù)現(xiàn)‘首頁至消息頁’的反復(fù)進(jìn)出操作,觀察到應(yīng)用內(nèi)存占用呈現(xiàn)"階梯式持續(xù)增長"趨勢。在循環(huán)操作10次后,應(yīng)用出現(xiàn)顯著卡頓現(xiàn)象。

初步判斷:典型的“階梯式內(nèi)存增長”,高度疑似內(nèi)存泄漏。

分析流程

步驟1:Memory泳道確認(rèn)泄漏

1、打開 DevEco Studio,連接真機(jī),點(diǎn)擊 Profiler 工具 Realtime Monitor(也可使用 snapshot 模板的 Memory 錄制觀察,以下是使用 Realtime Monitor 觀察)。

2、啟動(dòng)應(yīng)用,選擇設(shè)備與應(yīng)用進(jìn)程。

3、點(diǎn)擊錄制按鈕,在設(shè)備上重復(fù)操作:進(jìn)入消息頁面 → 停留 2 秒 → 返回首頁,重復(fù)多次。

4、觀察內(nèi)存曲線:

正常預(yù)期:每次退出后內(nèi)存回落至基線附近,整體呈鋸齒狀。

實(shí)際現(xiàn)象:曲線呈階梯狀上升,多次操作后內(nèi)存增長至 314.1 MB 且無明顯回落。

確認(rèn)存在內(nèi)存泄漏,進(jìn)入下一步。

91199fb6-5db8-11f1-90a1-92fbcf53809c.png

步驟2:堆快照對比定位異常對象

1、在 Profiler 中切換到Snapshot模板,請參考使用 Snapshot 模板基本操作:

Snapshot 模板基本操作:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-snapshot-basic-operations

選擇 Profiler 工具 → 選擇設(shè)備與應(yīng)用進(jìn)程 → 選擇 Snapshot 模板 → 創(chuàng)建Session → 啟動(dòng)錄制

91811b28-5db8-11f1-90a1-92fbcf53809c.png

2、抓取快照 1:首次在進(jìn)入消息頁前,點(diǎn)擊“Take Heap Snapshot”。

91ebe3ea-5db8-11f1-90a1-92fbcf53809c.png

3、抓取快照 2:重復(fù)進(jìn)出消息頁面7 次后,回到首頁,點(diǎn)擊 “Take Heap Snapshot”,再抓取第二次快照,并停止錄制。

924da6ca-5db8-11f1-90a1-92fbcf53809c.png

4、在快照對比視圖 Comparison 中,選擇CompareTo Snapshot 1。

92ae8652-5db8-11f1-90a1-92fbcf53809c.png

5、查看對象新增銷毀情況,優(yōu)先關(guān)注:

操作次數(shù)的整數(shù)倍或整數(shù)倍+1(export出的對象本身也有一條引用鏈);

業(yè)務(wù)對象,即Constructor的結(jié)構(gòu)為包名/模塊名/文件路徑#泄漏對象

93103bae-5db8-11f1-90a1-92fbcf53809c.png

關(guān)鍵發(fā)現(xiàn):

對比結(jié)果中,Proxy對象數(shù)量異常,創(chuàng)建70個(gè)未銷毀。

確認(rèn)Test對象實(shí)例泄漏。

步驟3:追蹤引用鏈

1、點(diǎn)擊 “Shortest Paths” 獲得如下Proxy對象實(shí)例的最短引用鏈,發(fā)現(xiàn)該P(yáng)roxy對象的 Distance 為 1 。說明其為 GC Root 直接持有的對象,被 Native 側(cè)直接持有未釋放,即 JS 對象被 Local Handle / Global Handle 引用導(dǎo)致內(nèi)存泄漏。

93c185e4-5db8-11f1-90a1-92fbcf53809c.png

2、通過Proxy對象的 Distance 為 1 的References,確認(rèn)內(nèi)存泄漏是由JS 對象被 Global Handle 引用導(dǎo)致。

94292974-5db8-11f1-90a1-92fbcf53809c.png

步驟4:分析Local Handle / Global Handle 類型持有導(dǎo)致泄漏問題

基于步驟3分析得到Proxy對象實(shí)例可能被 Local Handle / Global Handle 引用導(dǎo)致內(nèi)存泄露,我們可以通過以下步驟繼續(xù)分析定位:

1、配置 Allocation 錄制模板并捕獲數(shù)據(jù)

打開 DevEco Studio:確保你的工程已加載,并連接了目標(biāo)設(shè)備或模擬器。

進(jìn)入Profiler模塊:在主界面下方菜單欄,找到并點(diǎn)擊Profiler選項(xiàng)卡。

選擇應(yīng)用進(jìn)程:運(yùn)行應(yīng)用,并在“區(qū)域2 ”選擇目標(biāo)設(shè)備和應(yīng)用進(jìn)程。

創(chuàng)建 Allocation 錄制模板:選擇 “Allocation” 并點(diǎn)擊 Create Session 創(chuàng)建錄制模板

9494c6a2-5db8-11f1-90a1-92fbcf53809c.png

配置錄制參數(shù)

配置模式:選擇詳情模式(即關(guān)閉 Statistics Mode )。當(dāng)前僅詳情模式支持進(jìn)行 ArkTS 和 Native 的關(guān)聯(lián)分析。

配置開關(guān):勾選“Local Handle”和“Global Handle”,這是關(guān)鍵配置。這將使Allocation 專門捕獲與 JS-NAPI 句柄相關(guān)的內(nèi)存分配事件。

如果底層鏡像不支持該功能,則會(huì)提示“當(dāng)前鏡像版本不支持,請升級鏡像”。
94f031f4-5db8-11f1-90a1-92fbcf53809c.png

配置泳道范圍:勾選 ArkTS Snapshot 泳道。這將使 Allocation 在錄制結(jié)尾時(shí)自動(dòng)抓取一份 Snapshot 快照用于關(guān)聯(lián)分析。

955c22f6-5db8-11f1-90a1-92fbcf53809c.png

啟動(dòng)錄制:勾選了“Local Handle”開關(guān)后,如果是在應(yīng)用本生命周期內(nèi)首次錄制local handle數(shù)據(jù),會(huì)觸發(fā)彈窗請求重啟應(yīng)用以便錄制對應(yīng)信息,此時(shí)點(diǎn)擊OK允許重啟即可。

95dbbafc-5db8-11f1-90a1-92fbcf53809c.png

運(yùn)行應(yīng)用程序:運(yùn)行目標(biāo)應(yīng)用,執(zhí)行相關(guān)被懷疑引入內(nèi)存泄露的業(yè)務(wù)操作,持續(xù)一段時(shí)間以增加內(nèi)存壓力和捕獲更多數(shù)據(jù)。

停止錄制:自動(dòng)觸發(fā)抓取一份Snapshot快照用于關(guān)聯(lián)分析。點(diǎn)擊快照,查找到疑似泄漏對象Proxy。

96444c16-5db8-11f1-90a1-92fbcf53809c.png

2、泄漏對象關(guān)聯(lián)分析

定位可疑ArkTS對象:選中一個(gè)懷疑被泄漏的ArkTS對象實(shí)例(或?qū)ο箢愋停榭磾U(kuò)展標(biāo)簽頁。 969e8884-5db8-11f1-90a1-92fbcf53809c.png

查看 Native List:若某個(gè) ArkTS 對象的distance值為 1,則可以通過擴(kuò)展標(biāo)簽頁中的Native List標(biāo)簽頁,查看所有當(dāng)前與該 JS 對象關(guān)聯(lián)的 Native 句柄引用,以確認(rèn)該 JS 對象是被Local Handle或Global Handle引用的對象。

9700830e-5db8-11f1-90a1-92fbcf53809c.png

關(guān)鍵信息:

(1)句柄類型:調(diào)用棧底層的符號ArkGlobalHandle或ArkLocalHandle判斷泄漏類型

(2)調(diào)用棧:通過調(diào)用棧,可以定位到應(yīng)用的Native代碼(可能是ArkUI框架代碼或你自己代碼)中創(chuàng)建napi_ref的地方。

(3)注意點(diǎn):

如果該 JS 對象節(jié)點(diǎn)不是一個(gè)被 Local Handle 或者 Global Handle 引用的對象,則會(huì)提示 "No Detail";

如果該JS對象確實(shí)是一個(gè)被Local Handle或者Global Handle引用的對象,但是對應(yīng)的native內(nèi)存的申請事件已經(jīng)在此次錄制之前完成內(nèi)存分配,本次錄制結(jié)果則無法展示對應(yīng)的內(nèi)存申請調(diào)用棧,需要重新錄制,錄制時(shí)需要注意將錄制時(shí)執(zhí)行的業(yè)務(wù)邏輯范圍調(diào)整的盡量更早一些。

3、分析內(nèi)存分配調(diào)用棧

排查調(diào)用棧:“Native List”標(biāo)簽頁中的調(diào)用棧,找到對應(yīng)業(yè)務(wù)代碼

關(guān)鍵排查點(diǎn):

檢查是否在適當(dāng)?shù)臅r(shí)候調(diào)用了對應(yīng)的句柄釋放接口如napi_delete_reference等。

梳理這段Native代碼需要引用ArkTS對象的合理性,識別這個(gè)引用的生命周期是否過長,是否應(yīng)該在某個(gè)條件滿足后被釋放;

對于napi_ref,其引用計(jì)數(shù)是關(guān)鍵。確保在不再需要引用時(shí)正確調(diào)用了napi_delete_reference。注意,引用計(jì)數(shù)可能因其他代碼路徑的創(chuàng)建或刪除操作而意外增減。

檢查句柄的作用域是否合理。local handle是否應(yīng)該只在 JS 執(zhí)行上下文切換前使用?global handle是否真的需要在整個(gè)應(yīng)用生命周期都有效 9762007a-5db8-11f1-90a1-92fbcf53809c.png

修復(fù)驗(yàn)證

1、重新運(yùn)行應(yīng)用,再次使用 Memory 泳道監(jiān)控。

2、重復(fù)多次進(jìn)出消息中心頁。

3、驗(yàn)證結(jié)果:

內(nèi)存曲線恢復(fù)鋸齒狀,每次退出后回落至基線。

再次抓取快照對比,多次操作后業(yè)務(wù)對象實(shí)例數(shù)量無明顯增長。

泄漏問題已修復(fù)。

97b7e210-5db8-11f1-90a1-92fbcf53809c.png

體驗(yàn)與推廣

DevEco Studio Profile 工具的跨語言交互內(nèi)存泄漏定位能力已就緒,歡迎開發(fā)者前往 DevEco Studio 體驗(yàn)最新內(nèi)存分析功能,助力開發(fā)者提高內(nèi)存問題定位效率。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Studio
    +關(guān)注

    關(guān)注

    2

    文章

    233

    瀏覽量

    30905
  • 內(nèi)存泄漏
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    9565
  • 鴻蒙
    +關(guān)注

    關(guān)注

    61

    文章

    3090

    瀏覽量

    46332
  • DevEco Studio
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    1588

原文標(biāo)題:DevEco Studio Profiler 升級:高效解決 ArkTS 與 Native 交互內(nèi)存泄漏難題

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用DevEco Studio性能調(diào)優(yōu)工具Profiler定位應(yīng)用內(nèi)存問題

    鴻蒙應(yīng)用開發(fā)過程中,可能由于種種原因?qū)е聭?yīng)用內(nèi)存未被正的使用或者歸還至操作系統(tǒng),從而引發(fā)內(nèi)存異常占用、內(nèi)存泄漏等問題,最終導(dǎo)致應(yīng)用卡頓甚至崩潰,嚴(yán)重影響用戶體驗(yàn)。
    的頭像 發(fā)表于 01-16 14:40 ?3111次閱讀
    如何使用<b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b>性能調(diào)優(yōu)<b class='flag-5'>工具</b><b class='flag-5'>Profiler</b>定位應(yīng)用<b class='flag-5'>內(nèi)存</b>問題

    最新 HUAWEI DevEco Studio 使用技巧

    最新 HUAWEI DevEco Studio 使用技巧 HUAWEI DevEco Studio 作為我們 harmonyos 應(yīng)用的開發(fā)工具
    的頭像 發(fā)表于 04-27 16:59 ?1629次閱讀
    最新 HUAWEI <b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b> 使用技巧

    鴻蒙開發(fā)-DevEco Studio Profiler工具進(jìn)行幀率分析

    Frame Profiler概述 DevEco Studio內(nèi)置Profiler分析調(diào)優(yōu)工具,其
    發(fā)表于 01-16 19:34

    HarmonyOS實(shí)戰(zhàn)開發(fā)-內(nèi)存快照Snapshot Profiler功能使用指導(dǎo)

    DevEco Studio集成的DevEco Profiler性能調(diào)優(yōu)工具(以下簡稱為Profiler
    發(fā)表于 05-11 13:51

    HarmonyOS NEXT 原生應(yīng)用/元服務(wù)-DevEco Profiler性能調(diào)優(yōu)概述

    Monitor)能力,提供全方位的設(shè)備資源監(jiān)測,覆蓋系統(tǒng)事件、異常報(bào)告、CPU占用、內(nèi)存占用、實(shí)時(shí)幀率、GPU使用率以及能耗等多個(gè)維度的數(shù)據(jù),自頂向下逐層展開分析,并可借助DevEco Pr
    發(fā)表于 02-14 15:19

    HarmonyOS NEXT 原生應(yīng)用/元服務(wù)-DevEco Profiler性能問題定位深度錄制

    。 Allocation:主要用于應(yīng)用/元服務(wù)內(nèi)存資源占用情況的分析,可深度采集內(nèi)存相關(guān)數(shù)據(jù),直觀呈現(xiàn)不同分類的內(nèi)存趨勢,提供內(nèi)存實(shí)例分配的
    發(fā)表于 02-24 16:06

    DevEco Studio 工具如何安裝

    簽名。 步驟 3在編輯窗口右上角的工具欄,點(diǎn)擊運(yùn)行按鈕,或使用默認(rèn)快捷鍵 Shift+F10(Mac 為 Control+R)運(yùn)行工程,等待編譯完成即可便運(yùn)行在設(shè)備上。 至此,驗(yàn)證了 DevEco Studio
    發(fā)表于 04-24 07:38

    查收新年禮物丨DevEco Studio 3.0 Beta2發(fā)布,20個(gè)新變化詳解

    的資源。為此,DevEco Studio 3.0 Beta2版本集成了Profiler性能分析器,可以為開發(fā)者提供實(shí)時(shí)分析數(shù)據(jù),并通過圖表形
    發(fā)表于 01-04 11:32

    HUAWEI DevEco Studio 3.1版本發(fā)布,配套ArkTS聲明式開發(fā)全面升級

    HarmonyOS應(yīng)用及服務(wù)的一站式集成開發(fā)環(huán)境(IDE),DevEco Studio 3.1將配套ArkTS聲明式開發(fā)全面升級,高效開發(fā),快速調(diào)試,快來升級體驗(yàn)。 官網(wǎng)下載安裝包(復(fù)制到瀏覽器打開
    發(fā)表于 11-17 11:52

    【技術(shù)視界】鴻蒙開發(fā)套件之DevEco Profiler助您輕松分析應(yīng)用性能問題

    的運(yùn)行性能,這樣就能在應(yīng)用產(chǎn)生某些性能問題時(shí)快速的發(fā)現(xiàn)和定界。 **二 **場景化分析,直擊問題源碼行 在DevEco Profiler工具的設(shè)計(jì)之初,我們便確定了一條核心理念,就是要
    發(fā)表于 09-15 15:55

    Unity Profiler分析內(nèi)存使用狀況疑問解答

    在使用Unity開發(fā)游戲的過程中,借助Profiler分析內(nèi)存使用狀況是至關(guān)重要的。但許多開發(fā)者可能還對Profiler中各項(xiàng)數(shù)據(jù)表示的含義不甚明確,Unity官方的技術(shù)工程師柳振東
    的頭像 發(fā)表于 01-31 09:52 ?3405次閱讀
    Unity <b class='flag-5'>Profiler</b><b class='flag-5'>分析</b><b class='flag-5'>內(nèi)存</b>使用狀況疑問解答

    HUAWEI DevEco Studio 3.1版本發(fā)布,配套ArkTS聲明式開發(fā)全面升級

    HarmonyOS應(yīng)用及服務(wù)的一站式集成開發(fā)環(huán)境(IDE),DevEco Studio 3.1將配套ArkTS聲明式開發(fā)全面升級,高效開發(fā),快速調(diào)試,快來升級體驗(yàn)。 官網(wǎng)下載安裝包(復(fù)制到瀏覽器打開
    的頭像 發(fā)表于 11-16 19:20 ?2450次閱讀

    line_profiler性能分析工具簡單的使用

    line_profiler 是一個(gè)用于對函數(shù)進(jìn)行逐行分析的模塊。Python 當(dāng)前的分析工具僅僅支持一個(gè)函數(shù)的時(shí)間消耗分析
    的頭像 發(fā)表于 03-03 14:39 ?3848次閱讀
    line_<b class='flag-5'>profiler</b>性能<b class='flag-5'>分析</b><b class='flag-5'>工具</b>簡單的使用

    DevEco Studio 3.1 Beta新特性知多少

    ArkTS/TS代碼檢查、重命名重構(gòu)、上下文感知的代碼補(bǔ)全能力,幫助開發(fā)者寫出高質(zhì)量的代碼,提升代碼編輯效率。 1.1?ArkTS/TS代碼檢查 DevEco Studio針對
    的頭像 發(fā)表于 04-21 11:15 ?1645次閱讀
    <b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b> 3.1 Beta新特性知多少

    DevEco Studio 3.1 Beta新特性知多少?

    ArkTS/TS代碼檢查、重命名重構(gòu)、上下文感知的代碼補(bǔ)全能力,幫助開發(fā)者寫出高質(zhì)量的代碼,提升代碼編輯效率。 1.1?ArkTS/TS代碼檢查 DevEco Studio針對
    的頭像 發(fā)表于 04-21 16:50 ?2197次閱讀
    <b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b> 3.1 Beta新特性知多少?
    东城区| 罗山县| 门头沟区| 伊金霍洛旗| 元谋县| 康保县| 虎林市| 扬州市| 新余市| 乌拉特前旗| 盐亭县| 进贤县| 城市| 神农架林区| 德安县| 阿合奇县| 玉林市| 海晏县| 杭锦后旗| 吴桥县| 留坝县| 盐城市| 扶沟县| 延长县| 军事| 香港 | 广灵县| 凌海市| 虞城县| 遵义市| 吉木萨尔县| 福建省| 漳州市| 长春市| 和平区| 施秉县| 呼伦贝尔市| 克拉玛依市| 葵青区| 宁乡县| 马边|