ตัวอย่างของการใช้โปรไฟล์ NodeJS ในตัว ฉันไม่ได้ปรับปรุงประสิทธิภาพ แต่ฉันได้เรียนรู้บางสิ่ง
การสร้างดัชนีการค้นหาข้อความแบบเต็มของไฟล์ข้อความบนระบบไฟล์ท้องถิ่นโดยใช้ LUNR ปัจจุบันใช้เวลาประมาณ 3 วินาทีในการจัดทำดัชนี 1000 ไฟล์
./profile.sh
นี่จะส่งออกไฟล์ profile_output.txt ดูที่ส่วน 'การอ่าน NodeJS Profiler Output' ด้านล่างสำหรับวิธีการตีความไฟล์นี้
เราจะเห็นได้ว่า 81% ของเวลากระบวนการใช้ใน 'ห้องสมุดที่ใช้ร่วมกัน', 77/81 ของที่เป็น node.exe:
[Summary]:
ticks total nonlib name
315 18.6% 96.6% JavaScript
0 0.0% 0.0% C++
80 4.7% 24.5% GC
1369 80.8% Shared libraries
11 0.6% Unaccounted
[Shared libraries]:
ticks total nonlib name
1303 76.9% C:Program Filesnodejsnode.exe
65 3.8% C:WINDOWSSYSTEM32ntdll.dll
1 0.1% C:WINDOWSSystem32KERNEL32.DLL
การใช้ Profile Visualiser ออนไลน์นี้ดูเหมือนว่าการโทรไปยังโหนดส่วนใหญ่เกิดจาก Builder.add ซึ่งเป็นความสับสนเล็กน้อย ฉันคิดว่านี่อาจเป็นเพราะการเพิ่มการเรียก isync readfile ซึ่งเป็น 'โทษ' builder.add สำหรับเวลาที่ใช้ในการอ่านไฟล์จากระบบไฟล์ มาแยกการดำเนินการทั้งสองกันเถอะ

ปรากฎว่าการอ่านไฟล์นั้นเร็วมาก เวลาแอพส่วนใหญ่ใช้ใน Builder.add อย่างไรก็ตาม builder.add เรียก node.exe เกินกว่าที่เราไม่ได้รับข้อมูล
Spy-JS มีประโยชน์หรือไม่? ฉันลองใช้เวลาไม่กี่นาทีและสามารถบอกฉันได้ว่า 'ใช่แล้ว builder.add เรียกว่ามาก'
มีวิธีที่จะดูเพิ่มเติมเกี่ยวกับสิ่งที่เรียกว่าโหนดหรือไม่? และอะไร?
Profiler เริ่มต้นคือตัวทำโปรไฟล์การสุ่มตัวอย่างซึ่งหมายความว่าจะบันทึกตัวชี้คำสั่งปัจจุบันในช่วงเวลาหนึ่ง
มีเครื่องมือจำนวนมากนี่คือออนไลน์ที่มีประโยชน์: https://mapbox.github.io/flamebearer/# ลากไฟล์ profile_output.json ลงในไซต์นั้นเพื่อแสดงข้อมูลโปรไฟล์