BLOG

SYSTEMx Log Viewer

ดู Log แบบเป็นกราฟอันโนมัติ เครื่องมือทำรีวิวขั้นเทพ
หรือจะแค่สนองความ Geek ในตััวคุณก็ได้

ผมว่า มีหลายท่านที่อยากจะลองทำรีวิว เป็น YouTuber อะไรกับเขาบ้าง เพราะว่างานรีวิวเนี่ย ครึ่งนึงมันเป็นงานที่น่าทำมากเลยนะ ก็คือเปิดเทสนู่นนี่ เล่นเกม เพื่อทดสอบเครื่อง เป็นงานในฝันของหลายๆ คนเลยแหละ ผมว่านะ

แต่ความลำบาก มันจะมาตกอยู่ที่ว่า เราจะต้องนั่งเปิดโปรแกรมอะไรมากมายเพื่อจะให้ได้มาซึ่งข้อมูลสำหรับทำรีวิว อย่างผมก็ใช้ hwinfo เป็นหลัก (ซึ่งมีโปรแกรมดูกราฟฟรีอยู่ที่นี่) คู่กับ PresentMon เพื่อจับข้อมูล Frame Time / Frame Rate ของเกมออกมาเก็บไว้ในไฟล์ (เรียกว่า Log File) ซึ่งทั้งสองโปรแกรมนี้ ก็จะให้ผลลัพทธ์มาเป็นไฟล์ .CSV ปนๆ งงๆ กันอยู่ ต้องระมัดระวัง และก็ตั้งชื่อไฟล์ให้ดี

พอจัดไฟล์เป็นระเบียบ ไม่งงแล้ว ก็จะต้องมางงต่อใน Excel โดยผมก็จะต้องมานั่งจัดข้อมูล ทำให้มันเป็นตาราง จากนั้นก็ทำกราฟ ใส่สูตรหา Min, Max, Average, Percentile อะไรแบบนี้ พอทำซ้ำๆ กันมาหลายเดือนละผมก็เริ่มพอจะรู้สึกละว่า ทำไมชีวิตการทำรีวิวมันถึงได้รันทดขนาดนี้นะ!!!

ทีนี้เราก็มี SYSTEMx อยู่แล้วนี่ แถมมันก็สามารถอ่านค่า Sensor ได้อยู่แล้ว เราก็จัดการทำให้มันเก็บค่า Sensor ลงไฟล์ด้วยเลยสิ~

ถ้ายังไม่มี systemX ติดตั้งทางนี้

วิธีการเปิด Logging ใน systemX

สำหรับฟีเจอร์ในการเก็บข้อมูล Sensor นี้ จริงๆ ผมใส่เอาไว้นานแล้ว เพราะว่าจะใช้ทำรีวิวนั่นแหละ โดยทุกท่านที่ใช้ SystemX สามารถเปิดใช้งานได้เลย โดยคลิกขวาที่ไอคอน 51 แล้วเลือก Save Sensor and fps Data ก็จะเป็นการเริ่มการทำงานของระบบเก็บ Log โดยระบบจะถามว่า จะให้การเก็บ Log ครั้งนี้เป็นการเก็บของโปรแกรมอะไร หรือว่าจะเอาไปทำอะไร (Session Name) ก็แค่ระบุลงไปเท่านั้นเอง

อ้อ ระบบจะไม่เช็คว่าชื่อซ้ำมั๊ยนะ ใส่อะไรลงไปก็ได้ ถ้า Session Name ซ้ำก็เวลาที่อ่านข้อมูลออกมา มันก็จะถือว่าเป็นข้อมูลชุดเดียวกัน เผื่อว่าอยากจะหยุดชั่วคราว แล้วเซฟต่อ อะไรแบบนี้

สำหรับท่านที่เรียน Database มาแล้ว อาจจะรู้สึกตะขิดตะขวงใจกับก็ผมไม่ได้ทำการ Normalize ใดๆ ทั้งสิ้นเลย ก็เพราะว่าเหตุผลเรื่องความเร็วและความสะดวกในการ Query (จะได้ไม่ต้อง JOIN) และก็คอลัมน์ SessionName มี Index ไว้อยู่แล้วด้วยน่ะ อีกอย่างก็คือ Strorage สมัยนี้มันราคาถูก เราไม่จำเป็นจะต้องประหยัดที่เก็บ SessionName ซึ่งเขียนซ้้ำๆ กันก็ได้ อย่างมากก็ประหยัดลงได้ไม่ถึง MB เท่านั้นแหละ :D

ส่วนของการดู Log สามารถใช้โปรแกรมที่เปิดอ่านฐานข้อมูล SQLite ได้ ซึ่งผมเลือกใช้ SQLite Studio เพราะว่ามันทำอะไรได้หลายอย่างดี เหมือนกับโปรแกรมจัดการฐานข้อมูลขนาดใหญ่เลยแหละ ตอนแรกผมก็ตั้งใจว่า จะเขียน Query เอง แล้ว Export ใส่ Excel แต่มาคิดดูอีกที นี่มันก็กลับเข้า Loop เดิมนี่นา :P ก็ต้องขอขอบคุณน้องโฟลค์ ที่ช่วยให้ผมมีเวลาว่างมากขึ้นอีกนิดนึง (นิดนึงจริงๆ) ในการทำฟีเจอร์เพิ่มได้อีก นั่นก็คือ systemX Log Viewer!~

systemX Log Viewer

สำหรับวิธีใช้งานก็ง่ายมาก เพียงแค่คลิกขวาที่ไอคอน 51 แล้วเลือก View Log ก็จะเป็นการเปิดหน้าเว็บขึ้นมา จากนั้น ก็เลือก Session ที่บันทึกไว้ จากเมนูแรก

พอเลือกแล้ว หน้าจอจะแสดงกราฟ CPU Load (% การใช้งาน CPU), All Core Average Clock (ความเร็วเฉลี่ยของทุก Core บน CPU ณ เวลานั้น), All Core Maximum Temperature (อุณหภูมืิของ Core ที่มีอุณหภูมิสูงสุด ณ เวลานั้น), GPU Core Temperature (อุณหภูมิ GPU) ขึ้นมาให้อัตโนมัติ 

ส่วนถ้ามีเซนเซอร์ที่อยากดูค่าเพิ่ม ก็สามารถเลือกได้จากเมนู Sensors ส่วนถ้าอยากจะเอาอันไหนออก ก็แค่กดซ้ำที่เซนเซอร์นั้นอีกที เพื่อเอาออก ตัวที่แสดงผลอยู่ จะมีเครื่องหมายถูกอยู่ด้านหน้า

วิธีการอ่านกราฟ

สำหรับกราฟ จะมีด้วยกันสองกราฟ คือข้อมูลคู่กับเวลา (Timeseries) โดยกราฟนี้จะแยกแกน Y เป็นสองแกน คือ แกนซ้าย จะเป็นแกนข้อมูลที่มีเลขสูงสุดไม่เกิน 100 ส่วนแกนขวา จะเป็นแกนของเลขที่เกิน 100 ขึ้นไป แต่ว่าไม่มีผลกับการอ่านค่านะ เพราะว่ากราฟจะปรับค่ามาให้เท่ากันเอง สามารถใช้ดูเชิงเปรียบเทียบได้เลย

อย่างกราฟนี้ จากการรัน Cinebench บนเครื่อง GG ก็จะพบว่า ในช่วงที่ CPU 100% (เส้นสีม่วง) ความร้อนอยู่ที่ประมาณ 90 องศาและความเร็วอยู่ใกล้ๆ 4000

แล้วก็สามารถเลือกดูค่าทีละจุดได้ โดยเอาเมาส์ชิ้ลงไปที่เส้นกราฟเพื่ออ่านข้อมูล

ส่วนกราฟด้านล่าง จะเป็นกราฟสรุปข้อมูลเชิงสถิติ ได้แก่

  • Min, Max, Average ก็น้อยสุด มากสุด และค่าเฉลี่ย
  • 10% Percentile ก็คือ ถ้าเอาข้อมูลเรียงกันจากน้อยไปมาก ค่าน้อยที่สุด 10% แรก (ถ้าข้อมูลมี 100 ตัว ก็คือ ตัวที่ 10) มีค่าไม่เกินเท่านี้
  • 90% Percentile ก็คือ ถ้าเอาข้อมูลเรียงกันจากน้อยไปมาก ค่าน้อยที่สุด 90% แรกมีค่าไม่เกินเท่านี้
  • Standard Deviation คือ ค่าเบี่ยงเบนมาตรฐาน ก็คือว่า ค่าแต่ละค่า แตกต่างจากค่าเฉลี่ยมากแค่ไหน ถ้าเกิดว่าค่านี้น้อย แสดงว่าค่าค่อนข้างคงที่ ไม่ต่างจากค่าเฉลี่ยมากนัก

ซึ่งกราฟนี้ ถ้ามีข้อมูล Clock Speed อยู่ด้วย มันก็จะค่าดีดมากแบบนี้

ซึ่งเราสามารถปิดบางค่าออกได้ โดยการคลิกที่ Legend ด้านขวา ก็จะเป็นถูกขีดออกแบบนี้

ข้อมูลทั้งหมดนี้ประกอบกัน ก็จะช่วยตอบได้ว่า ช่วงของค่าที่อ่านออกมาจะเป็นประมาณไหน อย่าง อุณหภูมิของ Core ที่ร้อนที่สุด อยู่ช่วงประมาณ 55 - 91 และ ความของทุก Core เฉลี่ย จะมีค่าอยู่ในช่วงประมาณ 4.0GHz ตลอด

แล้วก็ เราสามารถเซฟกราฟที่แสดงอยู่ ออกเป็นภาพได้เลย โดยการคลิกขวา แล้วเลือก Save ก็จะได้เป็นภาพ PNG พื้นใส พร้อมใช้งาน

การปรับการแสดงผลของกราฟและหน้าจอ

สำหรับหน้าจอการดู Log นี้ จะเป็นหน้าจอที่สร้างด้วย HTML เช่นเคย และก็คุณสามารถเอา HTML/Script ที่ผมเขียนไว้ ไปประยุกต์เพื่อทำหน้าตาขึ้นเองได้ตามใจชอบ โดยเซฟเอาไว้ใน Folder Systemx ที่อยู่ใน My Documents ก็จะสามารถเปิดไฟล์จาก URL http://localhost:5293 ได้ทันที

ซึ่งไฟล์ที่เกี่ยวข้องก็จะมี:

  • http://localhost:5293/systemz/session.html อันนี้เป็นหน้าจอหลัก  ที่แสดงวิธีการเรียกใช้ Library Systemz โดยกราฟที่แสดงออกมาจะใช้ ChartJS
  • http://localhost:5293/systemz/js/systemz.js อันนี้จะเป็น Library ซึ่งภายในจะมี Directive/Controller ที่เขียนด้วย AngularJS อยู่หลายตัว ตัวที่เกี่ยวข้องกับหน้านี้คือ Controller ที่ชื่อ SystemZSession

สำหรับการปรับการแสดงผล จะต้องใช้ความรู้ AngularJS / CSS / HTML ประกอบๆ กัน ซึ่งสำหรับโพสนี้ ขออนุญาตไม่กล่าวถึงนะ แต่ขอแนะนำให้ว่า ต้องสร้างเป็น Controller ขึ้นมา แล้วให้อยู่ใต้ SystemZSession อีกที ก็จะสามารถใช้ ctrl.sessionStats และ ctrl.sessionTimeseries แก้ไขได้

ส่วนถ้าต้องการแก้ไขแค่ Font, ก็สามารถทำได้เลยโดยใช้โค๊ดแบบนี้

    <div ng-init="ctrl.font='Leelawadee';ctrl.gridColor='red'">
    </div>

ซึ่งค่าที่สามารถเปลี่ยนได้จะมี

  • ctrl.font : ฟอนต์บนกราฟ
  • ctrl.legendFont : ฟอนต์ตรง Legend
  • ctrl.color : สีตัวอักษร
  • ctrl.gridColor : สีของเส้น

ส่งท้าย

ก็หวังว่าฟีเจอร์นี้คงจะช่วยให้ทุกท่านทำรีวิวได้ง่ายขึ้น หรือว่าถ้าอยากจะแค่พล็อตกราฟความร้อนเล่นก็คงจะง่ายขึ้น ผมเองก็เตรียมทำรีวิวเครื่อง GG อยู่ มีระบบนี้ก็ช่วยผมได้เยอะเลยแหละ เตรียมพบกับรีวิวของ GG จาก LEVEL51 เร็วๆ นี้ด้วยนะครับ

 

โน๊ตบุ้ค/พีซี จาก LEVEL51

BLOG