heap-9bc30b0c.js 3.3 KB

12
  1. import{d as T,aC as F,c as u,S as H,Q as N,f as P,b5 as z,h as w,o as B,Z as v,a1 as p,a7 as a,ay as g,a6 as o,T as i,a9 as M,a5 as $,n as G,b9 as O,C as q,at as K}from"./index-a8341fa1.js";import"./dayjs-919e6097.js";import{R,a as j,r as E}from"./pan-3c2a437f.js";import{g as I,a as Z}from"./debug-cfb58f15.js";import{u as L}from"./index-7b240cde.js";const U={class:"view-controls"},Q={class:"heap-stats"},W={key:0},J={key:1,class:"text-view"},X=T({__name:"heap",setup(Y){const{t:c}=F(),r=u(),s=u("graph"),d=u([]),x=u(null),l=u(null),k=H(),{getDarkMode:C}=N(k),m=P(()=>C.value===z.DARK),V=()=>{E()};w(m,e=>{s.value==="graph"&&(l.value&&l.value.querySelector("svg")?b(l.value.querySelector("svg")):h())}),w(s,e=>{e==="graph"?h():(d.value,q(()=>{D(d.value),d.value}))});const _=L();B(async()=>{try{const e=await I();r.value=e.stats,d.value=e.objects,h()}catch(e){console.error("Failed to load heap data:",e)}});const D=e=>{e.length>1&&_.tableRef.reloadData(e)};function y(e){return e=Number(e),e<1024?`${e.toFixed(1)}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}async function h(){try{const e=await Z();R().then(t=>{if(!l.value)return;l.value.innerHTML="";const n=t.renderSVGElement(e);b(n),l.value.appendChild(n),j(n)})}catch(e){console.error("Failed to render graph:",e)}}function b(e){if(!e)return;const t=m.value;e.style.backgroundColor=t?"var(--layout-background)":"#f8f8f8";const n=e.querySelectorAll("polygon, ellipse"),A=e.querySelectorAll("text");n.forEach(f=>{f.setAttribute("fill",t?"#1f1f1f":"#ffffff"),f.setAttribute("stroke",t?"#aaaaaa":"#000000")}),A.forEach(f=>{f.setAttribute("fill",t?"var(--text-color)":"#000000")})}const S={maxHeight:"100%",rowConfig:{keyField:"type",useKey:!0,className:()=>m.value?"dark-row":"",isHover:!0},columnConfig:{useKey:!0},columns:[{field:"type",title:"type",showOverflow:"tooltip",minWidth:"150px"},{field:"count",title:"count",showOverflow:"tooltip"},{field:"size",title:"size",formatter:({row:e})=>y(e.size)},{field:"sizePerc",title:"sizePerc",formatter:({row:e})=>y(e.sizePerc)},{field:"refs",title:"depth",formatter:({row:e})=>e.refs.length}],data:[]};return(e,t)=>(v(),p("div",{class:g(["heap-container",{"graph-view":s.value==="graph"}])},[a("div",U,[a("button",{class:g({active:s.value==="graph"}),onClick:t[0]||(t[0]=n=>s.value="graph")},o(i(c)("routes.monitor.图形视图")),3),a("button",{class:g({active:s.value==="text"}),onClick:t[1]||(t[1]=n=>s.value="text")},o(i(c)("routes.monitor.文本视图")),3)]),a("div",Q,[a("h3",null,o(i(c)("routes.monitor.堆统计")),1),r.value?(v(),p("div",W,[a("div",null,"Total Alloc: "+o(r.value.totalAlloc),1),a("div",null,"Heap Alloc: "+o(r.value.heapAlloc),1),a("div",null,"Heap Objects: "+o(r.value.heapObjects),1),a("div",null,"GC CPU Fraction: "+o(r.value.gcCPUFraction.toFixed(4)),1),a("div",null,"Number of GCs: "+o(r.value.numGC),1)])):M("",!0)]),s.value==="graph"?(v(),p("div",{key:0,class:"viz-container",ref_key:"vizContainer",ref:x},[a("button",{class:"reset-btn",onClick:V},[t[2]||(t[2]=a("i",{class:"el-icon-refresh"},null,-1)),$(" "+o(i(c)("routes.monitor.重置视图")),1)]),a("div",{class:"main-view",ref_key:"mainView",ref:l},null,512)],512)):(v(),p("div",J,[G(i(O),{uid:i(_).uid,gridOptions:S},null,8,["uid"])]))],2))}});const re=K(X,[["__scopeId","data-v-6ba74053"]]);export{re as default};
  2. //# sourceMappingURL=heap-9bc30b0c.js.map