คำถามติดแท็ก profiling

14
วิธีรับเวลาประมวลผลของสคริปต์อย่างมีประสิทธิภาพ
ฉันต้องการที่จะแสดงเวลาที่เสร็จสมบูรณ์ของสคริปต์ สิ่งที่ฉันทำในปัจจุบันคือ - #!/bin/bash date ## echo the date at start # the script contents date ## echo the date at end นี่เป็นเพียงการแสดงเวลาเริ่มต้นและสิ้นสุดของสคริปต์ เป็นไปได้ไหมที่จะแสดงเอาต์พุตแบบละเอียดเช่นเวลาตัวประมวลผล / เวลา io เป็นต้น
340 bash  profiling 

3
การพิจารณาไฟล์เฉพาะที่รับผิดชอบสำหรับ High I / O
นี่เป็นปัญหาง่าย ๆ แต่ครั้งแรกที่ฉันต้องแก้ไขจริง ๆ : การค้นหาไฟล์ / inodes ที่เจาะจงเป็นเป้าหมายของ I / O ส่วนใหญ่ ฉันต้องการรับภาพรวมระบบทั่วไป แต่ถ้าฉันต้องให้ PID หรือ TID ฉันไม่เป็นไร ฉันต้องการที่จะไปโดยไม่ต้องทำในโปรแกรมที่ปรากฏขึ้นในstrace iotopควรใช้เครื่องมือในหลอดเลือดดำเดียวกับiotopที่ใช้แยกแยะไฟล์ ฉันสามารถใช้lsofเพื่อดูว่าไฟล์ mailman นั้นเปิดอยู่ แต่ไม่ได้ระบุว่าไฟล์ใดที่ได้รับ I / O หรือเท่าไหร่ ฉันเคยเห็นที่อื่นที่แนะนำให้ใช้auditdแต่ฉันไม่ต้องการทำเพราะจะใส่ข้อมูลลงในไฟล์การตรวจสอบของเราซึ่งเราใช้เพื่อวัตถุประสงค์อื่นและดูเหมือนว่าเป็นปัญหาที่ฉันควรจะวิจัย ทางนี้. ปัญหาเฉพาะที่ฉันมีอยู่ในขณะนี้คือด้วยสแนปชอตของ LVM ที่เติมอย่างรวดเร็วเกินไป ฉันได้แก้ไขปัญหาแล้ว แต่อยากจะสามารถแก้ไขได้ด้วยวิธีนี้แทนที่จะทำเพียงตัวlsอธิบายไฟล์แบบเปิดทั้งหมด/proc/<pid>/fdเพื่อดูว่าอันไหนเติบโตเร็วที่สุด

2
วิธีการทำให้ linux 'perf record' ทำงานสำหรับสัญลักษณ์ libc และ libstdc ++?
ฉันใช้perf record -gx86-64 Linux เพื่อทำโปรไฟล์โปรแกรม สัญลักษณ์หลายอย่างใน libc หรือ libstdc ++ มี0เป็นพาเรนต์: __GI___strcmp_ssse3(libc) และstrcmp@plt(libstdc ++) เช่น (จริง ๆ แล้วฉันสามารถทำลายสัญลักษณ์เหล่านี้ในดีบักเกอร์และรับ backtrace) ฉันชอบที่จะรู้ว่าผู้โทรหลักของฟังก์ชั่นเหล่านี้คืออะไรและทำไมจึงไม่ถูกบันทึก เป็นเพราะ libc และ libstdc ++ ไม่มีตัวชี้เฟรมบน x86_64 หรือไม่? และในทางปฏิบัติมากกว่านี้มีวิธีแก้ไขไหม?
12 glibc  profiling  perf 

3
คำสั่งวัด TLB ที่คิดถึงบน LINUX?
มีใครสักคนที่จะพาฉันไปที่คำสั่งเพื่อวัดการพลาด TLB ใน LINUX ได้ไหม? การพิจารณาความผิดพลาดเล็กน้อย (หรือโดยประมาณ) เป็นเรื่องผิดพลาดเนื่องจาก TLB พลาดหรือไม่
12 linux  profiling 

2
ค้นหา CPU kernel hog เป็นครั้งคราว
ฉันมีเคอร์เนล 2.6.35 PREEMPT ที่ทำงานบนโปรเซสเซอร์ ARMv7 ความเร็วปานกลาง เกี่ยวกับทุกๆ 100 - 125s สิ่งที่ทำให้เคอร์เนลล้มเหลวในการประมวลผลไดรเวอร์ที่เกี่ยวข้องกับเสียงอย่างรวดเร็วพอที่จะหลีกเลี่ยงการ underrun การค้างไว้โดยทั่วไปจะอยู่ในช่วง 15-30ms แต่อาจนานกว่านั้นมาก ไม่ชัดเจนว่าการถือครองอยู่ในเคอร์เนลทั้งหมดหรืออาจเกี่ยวข้องกับการกำหนดตารางเวลาของกระบวนการผู้ใช้ที่รันด้วยลำดับความสำคัญตามเวลาจริง (SCHED_RR, 2) ฉันเดาว่ามีไดรเวอร์ (อย่างน้อยหนึ่ง) ที่ไม่เล่นได้ดีกับการจอง เอาต์พุต strace บางตัวจากกระบวนการผู้ใช้แสดงให้เห็นถึงลักษณะบางอย่างของพฤติกรรมปกติและผิดปกติบางอย่างแม้ว่าฉันจะไม่แน่ใจว่าจะตีความรายงานเวลาต่าง ๆ ได้อย่างไร กรณีปกติ: 0.000518 แบบสำรวจ ([{fd = 10, เหตุการณ์ = POLLIN | POLLERR | POLLNVAL, revents = POLLIN}], 1, 3415) = 1 0.010202 แบบสำรวจ ([{fd = …
11 kernel  profiling 

3
ตรวจสอบว่า ELF ไบนารีถูกสร้างขึ้นด้วยเครื่องมือ gprof หรือไม่
มันเป็นไปได้ที่จะตรวจสอบว่าโปรแกรมที่กำหนดได้รับการรวบรวมกับ GNU gprof วัดคือมี '-pg' ธงส่งผ่านไปยังทั้งคอมไพเลอร์และลิงเกอร์, โดยไม่ต้องใช้มันเพื่อตรวจสอบว่ามันจะสร้างgmon.outไฟล์?

5
ฉันจะทำโปรไฟล์เชลล์สคริปต์ได้อย่างไร
ฉันมีหลายโปรแกรมที่ฉันเรียกใช้งานในเชลล์สคริปต์: ./myprogram1 ./myprogram2 ... ฉันรู้ว่าฉันสามารถโปรไฟล์แต่ละโปรแกรมโดยแก้ไขซอร์สโค้ด แต่ฉันต้องการทราบว่ามีวิธีที่ฉันสามารถวัดเวลาทั้งหมดที่ดำเนินการโดยการทำโปรไฟล์สคริปต์เองหรือไม่ มีโปรแกรมจับเวลาที่ฉันสามารถใช้เพื่อวัตถุประสงค์นี้หรือไม่? ถ้าเป็นเช่นนั้นการวัดของมันแม่นยำแค่ไหน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.