ปัญหานี้มักเกิดขึ้นแบบสุ่ม แต่ก็อาจเกิดหลังอัปเดต .NET Framework กระบวนการนี้ชื่อ mscorsvw.exe จะแสดงใน Task Manager ภายใต้ชื่อนี้หรือชื่อ .NET Runtime Optimization Service เป็นบริการที่ทำงานเพื่อเพิ่มประสิทธิภาพ .NET Framework ทำให้แอปที่พึ่งพามันทำงานเร็วขึ้น

อย่างไรก็ตาม การเพิ่มประสิทธิภาพนี้บางครั้งใช้เวลานานมาก ผู้ใช้รายงานว่ากินทรัพยากร CPU สูงมากตลอดหลายวัน ลองทำตามวิธีด้านล่างเพื่อแก้ไขปัญหา
สาเหตุของ CPU สูงโดย .NET Runtime Optimization Service
คำตอบทางการคือ กระบวนการต้องคอมไพล์ไลบรารีใหม่ และควรทำงานเฉพาะเมื่อคอมพิวเตอร์ว่าง Microsoft ระบุว่าไม่ควรเกินไม่กี่นาที แต่ความจริงผู้ใช้รอนานกว่าหนึ่งสัปดาห์โดยไม่มีความคืบหน้า สาเหตุที่เป็นไปได้:
- โดยทั่วไป ทำงานช้า สามารถเร่งได้โดยรันคำสั่งบางคำสั่ง
- อาจมี มัลแวร์ทำงานอยู่ ซึ่งปลอมตัวเป็นบริการนี้ หรือบริการนี้ถูกติดเชื้อ ลองสแกนมัลแวร์ ในบางกรณี AntiMalware service ก็อาจกินทรัพยากรสูงเช่นกัน
- บริการอาจเสียหาย ควรลองรีสตาร์ทบริการ
ซ่อมแซมไฟล์ที่เสียหาย
ดาวน์โหลดและรัน Restoro เพื่อสแกนและกู้คืนไฟล์ที่เสียหายหรือหายไปจาก ที่นี่ เมื่อเสร็จแล้ว ดำเนินการตามวิธีด้านล่าง
วิธีที่ 1: เพิ่มประสิทธิภาพกระบวนการ
ไม่แนะนำให้หยุดกระบวนการนี้ทันที เพราะมันช่วยให้คอมพิวเตอร์และแอป/เกมทำงานดีขึ้น แต่มีวิธีเร่งกระบวนการโดยรันคำสั่งหรือสคริปต์เพื่อให้ใช้ CPU cores มากขึ้น ทำให้เสร็จเร็วขึ้น ดูขั้นตอนด้านล่าง:
- ค้นหา "Command Prompt" ใน Start menu หรือกดปุ่มค้นหา คลิกขวาผลลัพธ์แรก เลือก "Run as administrator"

- ผู้ใช้ Windows รุ่นเก่า ใช้ Windows Logo Key + R เปิด Run dialog box พิมพ์ "cmd" กด Ctrl + Shift + Enter เพื่อรัน Command Prompt เป็น Admin
- คัดลอกและวางคำสั่งด้านล่าง กด Enter หลังแต่ละคำสั่ง เลือกคำสั่ง 2 อันแรกตามระบบปฏิบัติการ (32-bit ใช้อันแรก 64-bit ใช้อันที่สอง)
cd c:\Windows\Microsoft.NET\Framework\v4.0.30319 cd c:\Windows\Microsoft.NET\Framework64\v4.0.30319 ngen.exe executequeueditems
- ตรวจสอบว่า CPU usage ของ .NET Runtime Optimization Service กลับสู่ปกติหรือไม่
ทางเลือก: หากไม่สะดวกรันคำสั่งเอง หรือใช้ Windows รุ่นเก่า สามารถใช้สคริปต์ทางการของ Microsoft ที่ทำงานเหมือนกันได้
- ไปที่ลิงก์นี้เพื่อเปิดหน้า GitHub ของสคริปต์ เลื่อนลงไปที่โค้ด คลิกขวาปุ่ม Raw เลือก Save link as… ตรวจสอบว่าไฟล์เป็น Windows Script File (*.wsf)

- หาไฟล์ที่บันทึกไว้ ดับเบิลคลิกเพื่อรัน ถ้าถูกถามให้เลือกโปรแกรม เลือก Windows Script Host
- ตรวจสอบว่าปัญหาแก้ไขแล้วหรือไม่
วิธีที่ 2: สแกนมัลแวร์ในคอมพิวเตอร์
แม้จะดูมากเกินไป แต่การติดเชื้อมัลแวร์เป็นสาเหตุหลักของปัญหานี้ จำเป็นต้องตรวจสอบ โปรแกรมอันตรายต้องการทรัพยากร และมักตั้งชื่อกระบวนการคล้ายไฟล์ในระบบ
นี่คือวิธีสแกนด้วย Malwarebytes ซึ่งมักให้ผลดีที่สุดเพราะมีฐานข้อมูลใหญ่ โชคดี!
- Malwarebytes Anti-Malware เป็นเครื่องมือป้องกันมัลแวร์ยอดเยี่ยม มีเวอร์ชันทดลองฟรีจากเว็บไซต์ทางการ ดาวน์โหลดเวอร์ชันทดลองได้ ที่นี่

- หาไฟล์ที่ดาวน์โหลดในโฟลเดอร์ Downloads ดับเบิลคลิก เพื่อเปิด
- เลือกตำแหน่งติดตั้ง Malwarebytes และ ทำตามคำแนะนำการติดตั้ง บนหน้าจอ

- เปิด Malwarebytes จาก Start menu หรือ Desktop เลือก Scan ที่หน้าหลัก
- เครื่องมืออาจอัปเดตฐานข้อมูลไวรัสก่อน แล้วค่อยสแกน รอจนเสร็จ ถ้าพบมัลแวร์ ยืนยันให้ ลบ หรือ กักกัน

- รีสตาร์ทคอมพิวเตอร์ หลังสแกนเสร็จ ตรวจสอบว่าปัญหา .NET Runtime Optimization Service ยังคงอยู่หรือไม่
หมายเหตุ: ควรใช้สแกนเนอร์ความปลอดภัยอื่นๆ ด้วย หากทราบประเภทมัลแวร์ (ransomware, junkware ฯลฯ) เพราะสแกนเนอร์ตัวเดียวไม่จับได้ทุกประเภท
วิธีที่ 3: รีสตาร์ทบริการ
การรีสตาร์ทบริการจะเริ่มกระบวนการใหม่ และควรเสร็จเร็วขึ้นครั้งนี้ โดยเฉพาะถ้าเป็นบั๊กที่ทำให้ทำงานผิดปกติ ลองดูด้านล่าง:
- เปิด Run utility ด้วย Windows Key + R พิมพ์ "services.msc" แล้วกด OK เพื่อเปิดเครื่องมือ Services

- หา NVIDIA Telemetry Container ในรายการ คลิกขวาเลือก Properties
- ถ้าบริการเริ่มแล้ว (ดูจาก Service status) ให้หยุดโดยกด Stop แล้วกด Start ใหม่

- ตรวจสอบว่า Startup type ตั้งเป็น Automatic ก่อนดำเนินต่อ ยืนยันกล่องโต้ตอบที่ปรากฏ
อาจได้ข้อความผิดพลาดเมื่อกด Start:
"Windows could not start the service on Local Computer. Error 1079: The account specified for this service differs from the account specified for other services running in the same process."
ถ้าเกิดขึ้น ทำตามขั้นตอนด้านล่าง:
- ทำขั้นตอน 1-3 อีกครั้งเพื่อเปิด Properties ของบริการ ไปแท็บ Log On คลิก Browse…

- ในช่อง "Enter the object name to select" พิมพ์ชื่อบัญชีของคุณ คลิก Check Names รอจนชื่อพร้อมใช้งาน
- คลิก OK ใส่รหัสผ่านในช่อง Password ถ้าถูกถาม ควรเริ่มได้โดยไม่มีปัญหา
วิธีที่ 4: ทำ Clean Boot
ในบางกรณี แอปของบุคคลที่สามอาจก่อให้เกิด CPU สูงเนื่องจากต้องการการเพิ่มประสิทธิภาพ ขั้นตอนนี้จะทำ Clean Boot เพื่อตรวจสอบว่ามีแอปภายนอกรบกวนบริการหรือไม่ ทำตามคู่มือ Clean Boot ของเรา แล้วตรวจสอบ CPU usage หากต่ำลง แสดงว่าเป็นแอปภายนอกก่อให้เกิด แล้วคุณสามารถหาตัวทำให้เกิดปัญหาได้โดยเปิดใช้งานแอปทีละตัว