คุณจะทำให้ Microsoft Excel ทำงานที่ความเร็วสูงสุดได้อย่างไรแม้ว่าจะไม่มีการโฟกัสบนหน้าต่าง


10

ฉันสังเกตเห็นว่าเมื่อ Excel 2007 (และอาจเป็นรุ่นก่อนหน้า) มีโฟกัสของหน้าต่าง Excel จะทำงานที่ความเร็วสูงสุดซึ่งหมายความว่าไฟล์ที่เปิดอย่างรวดเร็วและแมโคร VBA ที่รันเป็นเวลานานจะทำงานได้อย่างรวดเร็ว

หากหน้าต่าง Excel สูญเสียโฟกัสลำดับความสำคัญของเธรดของ Excel ดูเหมือนจะลดลงอย่างมากและไฟล์ขนาดใหญ่ที่เปิดเมื่อคุณย้ายโฟกัสเปิดอืดและแมโคร VBA ที่ซับซ้อนต้องใช้เวลานานกว่าจะเสร็จสมบูรณ์

มีวิธีใดที่จะรักษาระดับความสำคัญของ Excel ให้สูงโดยไม่คำนึงว่าจะให้ความสำคัญหรือไม่

ฉันรู้ว่าฉันสามารถเพิ่มลำดับความสำคัญของเธรดผ่านทางตัวจัดการงานได้ แต่ฉันไม่แน่ใจว่าเอฟเฟ็กต์สิ่งที่อาจเกิดขึ้นกับสเปรดชีตหรือระบบปฏิบัติการของฉันคืออะไร

ระบบของฉันเป็น Dual Core ที่รวดเร็วพร้อม RAM 4GB และใช้งาน Vista 64

แก้ไขเพื่อความชัดเจน:

ปัญหาของฉันไม่เพียงเกี่ยวกับการเพิ่มระดับความสำคัญของกระบวนการ Excel ผ่านตัวจัดการงานเนื่องจากสิ่งนี้จะมีผลกับ Excel เมื่อมีการโฟกัสหน้าต่างเท่านั้น

ประเด็นคือสิ่งที่เกิดขึ้นเมื่อ Excel เสียโฟกัสของหน้าต่าง

จากการใช้ Excel อย่างกว้างขวางปรากฏว่าโดยการออกแบบมันจะลดลำดับความสำคัญของกระบวนการของตัวเองลงอย่างเห็นได้ชัดเมื่อหน้าต่าง Excel ไม่มีโฟกัส

การตั้งค่าลำดับความสำคัญสูงกว่าสำหรับกระบวนการ Excel ไม่ได้หยุดสิ่งนี้เกิดขึ้น - จะให้ Excel มีลำดับความสำคัญสูงกว่าเมื่อมีโฟกัส แต่จะลดลงอย่างมากเมื่อสูญเสียโฟกัส

ในการใช้งาน Excel ปกติ (อาจเป็น 99% ของทุกคนที่ใช้มัน) คุณจะไม่สังเกตเห็นผลกระทบนี้ แต่ด้วยสเปรดชีตขนาดใหญ่ (ประมาณ 2000 แผ่นฉันคิดว่า) และ VBA Macros ที่ซับซ้อนซึ่งใช้เวลาไม่กี่นาทีในการประมวลผล เห็นได้ชัด

โดยหลักการแล้วฉันต้องการให้ลำดับความสำคัญของเธรดเท่ากันไม่ว่าจะเน้นหน้าต่าง Excel หรือไม่

ถึงตอนนี้ฉันเพิ่งจะนั่งอยู่กับคอมพิวเตอร์ไม่กี่นาทีในระหว่างการประมวลผลเพื่อที่ฉันจะไม่คลิกออกจากหน้าต่าง Excel โดยไม่ตั้งใจเมื่อมันกระทืบไป แต่ฉันหวังว่าจะมีทางออกที่ดีกว่า ... บางที แฮกของรีจิสทรีบางชนิด?

แก้ไข:

ฉันเคยพบเพียงหนึ่งเอ่ยถึงปัญหานี้ในเน็ตที่ลิงค์นี้

นี่คือคำพูดที่เกี่ยวข้อง ...

อย่างไรก็ตามถ้าฉันทำให้หน้าต่าง Excel 2000 ปรากฏแก่ผู้ใช้และทำให้หน้าต่างอยู่ในโฟกัสแมโครจะทำงานด้วยความเร็วที่คาดไว้ อีกครั้งหน้าต่างจะต้องมีโฟกัสหรือแมโครช้าลงเพื่อรวบรวมข้อมูลอีกครั้ง


คำถามที่ดี. สิ่งนี้ได้พิสูจน์แล้วว่าเป็น 'คุณสมบัติ' ที่น่ารำคาญสำหรับฉันและยังไม่มีวิธีแก้ปัญหาที่แท้จริง ...
Noldorin

ลำดับความสำคัญของเธรดด้วยตัวเองจะไม่มีผลต่อประสิทธิภาพเว้นแต่ว่าจะมีหลายเธรดที่แย่งชิงทรัพยากร - ในกรณีนี้ลำดับความสำคัญที่สูงกว่าจะได้รับส่วนแบ่งแรกของวงกลม ฉันไม่ได้ใช้ Excel มาเป็นเวลานาน แต่มันอาจจะทำให้ปริมาณตัวเองลดลงเมื่ออยู่ในพื้นหลังหรือคุณอาจตกเป็นเหยื่อของกลไกการแลกเปลี่ยนการชะลอตัวของ Windows
Mark K Cowan

สิ่งนี้เกิดขึ้นกับโปรแกรม Office 2007 ทั้งหมดเมื่อใช้งานสคริปต์ VBA แบบยาว ฉันเคยเขียนสคริปต์ที่ใช้ข้อมูล excel และวางลงในแบบฟอร์ม Word ถ้าฉันซ่อนโปรแกรม Word สิ่งที่เหลือทิ้งก็คือการรวบรวมข้อมูล หากฉันอนุญาตให้โปรแกรมแสดงสคริปต์จะเร็วขึ้นถึง 10 เท่า
wbeard52

คำตอบ:


6

ตามค่าเริ่มต้นรุ่นที่ไม่ใช่เซิร์ฟเวอร์ของ Windows จะเพิ่มระดับความสำคัญให้กับกระบวนการพื้นหน้า เมื่อคุณผลัก Excel ไปที่พื้นหลังมันจะเสียการเพิ่มที่ก่อนหน้านี้เคยอยู่ในเบื้องหน้า บางโปรแกรมอื่นจะได้รับการเพิ่มระดับความสำคัญแทน

คุณสามารถเปลี่ยนการตั้งค่าเพื่อให้โปรแกรมไม่ได้รับการสนับสนุนนี้อีกต่อไป หมายเหตุ: สิ่งนี้จะไม่ส่งผลกระทบต่อ Excel แต่โปรแกรมใด ๆ ที่อาจมีคุณสมบัติเพียงพอสำหรับการเพิ่ม

นี่คือวิธีปรับแต่งการตั้งค่าใน Windows XP:

  1. คลิกขวาที่My Computer
  2. เลือกProperties
  3. คลิกที่แท็บAdvanced
  4. ในแผงประสิทธิภาพคลิกปุ่มการตั้งค่า
  5. คลิกที่แท็บAdvanced แผงแรกคือการกำหนดตารางเวลาตัวประมวลผล :

    แผงการตั้งเวลาตัวประมวลผล

  6. เปลี่ยนจากค่าเริ่มต้นของ "โปรแกรม" เป็น "บริการพื้นหลัง" และควรทำให้ Excel ทำงานใกล้ชิดกับวิธีที่คุณต้องการมากขึ้นเมื่ออยู่ในพื้นหลัง


โปรดทราบว่าการทำเช่นนี้จะทำให้โปรแกรมเบื้องหน้ามักจะดูเฉื่อยชาเมื่อแอปพลิเคชั่นและบริการพื้นหลังตัดสินใจโดยทันทีว่าพวกเขาต้องการทำอะไร
Mark K Cowan

"โดยปกติ Windows รุ่นที่ไม่ใช่เซิร์ฟเวอร์จะให้ความสำคัญกับกระบวนการพื้นหน้าเป็นลำดับความสำคัญ" ไม่พวกเขาทำไม่ได้ (พวกเขาทำก่อนหน้า Windows NT 4 แต่นั่นเป็นเวลาที่นานมากแล้ว) สิ่งที่พวกเขาทำคือสร้างไทม์สสำหรับกระบวนการพื้นหน้า 3x ตราบใดที่ไทม์สสำหรับกระบวนการอื่น ๆ (90 มิลลิเซคอนกับ 30) นอกจากนี้ยังมีการเพิ่มระดับความสำคัญ +2 ที่ใช้กับเธรดใด ๆ ในกระบวนการพื้นหน้าเมื่อแก้ไขการรอ ปัญหาเกี่ยวกับวิธีแก้ปัญหาที่นำเสนอในที่นี้คือทำให้เวลาเพิ่มขึ้นอีก 180 มิลลิวินาที สิ่งนี้อาจกระทบการตอบสนองของแอปที่ใช้ UI เป็นจำนวนมาก
เจมี่ Hanrahan

4

ฉันไม่คิดว่ามีปัญหากับการเปลี่ยนลำดับความสำคัญของกระบวนการ Excel เป็นAbove Normalในกรณีของคุณ มันไม่ควรเป็นปัญหา

อย่าทำให้มันสูงที่สุดซึ่งมันจะแข่งขันกับกระบวนการของระบบ
อย่าระงับหรือคุณสามารถระงับสิ่งอื่น ๆ ได้!


ถ้าคุณใช้มาร์ค Russinovich 's Process Explorer
จะดูที่ความสำคัญของกระบวนการที่ทำงานบนระบบของคุณ
มันแสดงค่าลำดับความสำคัญต่อไปนี้และการเชื่อมโยงของพวกเขา

24 Realtime
13 High         : procexp.exe itself is here, with winlogon, csrss
11              : smss is actually at 11
10 Above Normal :
 9              : lsass, services.exe are here
 8 Normal       : Most things are here
 6 Below Normal
 4 Idle

คุณสามารถใช้กระบวนการสำรวจและลองอีกครั้งจัดลำดับความสำคัญสำหรับExcel
เลื่อนไปด้านบน8แต่อย่าไปเกิน12
เหนือปกติที่10ควรทำฉันคาดหวัง

พร้อมสายเดียวกันถ้าคุณคิดว่ากระบวนการบางอย่างคือการขึ้นเวลาประมวลผลมากเกินไปในขณะที่ไม่อยู่ในโฟกัสคุณสามารถลดความสำคัญด้านขวาถึงไม่ได้ใช้งาน
ฉันมักจะใช้เทคนิคนี้เพื่อสิ่งนั้น


แต่ลำดับความสำคัญจะยังคงลดลงเมื่อ Excel ไม่มีโฟกัสใช่มั้ย ... ถึงระดับความสำคัญสูงกว่าเมื่อก่อนเล็กน้อยฉันเดา คุณรู้วิธีการรักษาความสำคัญของเธรดที่สอดคล้องกันโดยไม่คำนึงถึงโฟกัสของหน้าต่างหรือไม่?
Joe Schmoe

ฉันamกำลังมองหารายละเอียดนี้ แต่ความเข้าใจของฉันคือหน้าต่างที่อยู่ในโฟกัสมักจะเป็นNormalลำดับความสำคัญ (โดยค่าเริ่มต้น) และเมื่อคุณเลื่อนExcelไปที่Above Normalลำดับความสำคัญมันควรจะทำงานที่ลำดับความสำคัญสูงกว่าหน้าต่างที่โฟกัส แต่ที่ระดับความสำคัญต่ำกว่านั้นระบบจะประมวลผล - ซึ่งเป็นตำแหน่งที่คุณต้องการให้เป็น
nik

นอกจากว่าฉันเข้าใจผิดในสิ่งที่คุณพูดความหมายของคุณคือคุณสามารถเพิ่มลำดับความสำคัญของกระบวนการ Excel และมันจะยังคงอยู่ที่ความสำคัญนั้นตลอดเวลา แต่จากการใช้ Excel อย่างกว้างขวางฉันสามารถพูดด้วยความมั่นใจว่ามันไม่ทำอย่างนั้น ปรากฏขึ้นโดยออกแบบว่ามันลดลำดับความสำคัญของตัวเองเมื่อหน้าต่าง Excel ไม่มีโฟกัส การตั้งค่าลำดับความสำคัญสูงกว่าสำหรับกระบวนการ Excel ไม่ได้หยุดสิ่งนี้เกิดขึ้น - จะให้ Excel มีลำดับความสำคัญสูงกว่าเมื่อมีโฟกัส แต่จะลดลงอย่างมากเมื่อสูญเสียโฟกัส เพียงแค่ทำการทดสอบเพื่อยืนยันสิ่งนี้
Joe Schmoe

ฉันประหลาดใจ. แม้ว่าฉันไม่ได้ใช้เทคนิคนี้เพื่อเพิ่มลำดับความสำคัญของกระบวนการ
nik

ฉันได้เพิ่มข้อมูลเพิ่มเติมลงในคำถามเพื่อเน้นการลดกระบวนการโดยเจตนาที่ดูเหมือนจะเกิดขึ้น เป็นการดีที่จะมีการแฮกของรีจิสทรีบางชนิดที่จะหยุดสิ่งนี้
Joe Schmoe

3

มีสิ่งต่าง ๆ ให้พิจารณาที่นี่: เมื่อคุณเปลี่ยนลำดับความสำคัญของกระบวนการลำดับความสำคัญพื้นฐานนั้นจะถูกสืบทอดโดยเธรดทั้งหมดและกระบวนการอื่น ๆ ที่เริ่มต้น ลำดับความสำคัญปัจจุบันถูกสร้างขึ้นจากระดับความสำคัญพื้นฐานและปัจจัยต่าง ๆ ที่กำหนดว่าควรได้รับการส่งเสริมหรือไม่ - การอยู่ในเบื้องหน้านั้นไม่จำเป็นต้องเพิ่มระดับความสำคัญ แต่สิ่งต่าง ๆ เช่นออกมาจากสถานะรอหรือการทำ IO บางอย่าง ให้เพิ่มระยะสั้นชั่วคราว

ฉันขอแนะนำให้ใช้กระบวนการ Excel ของคุณโดยมีลำดับความสำคัญสูงเมื่อทำงานกับเวิร์กบุคที่เข้มข้นมากเหล่านี้และอาจพูดได้ว่าทางลัดที่สองที่เรียกว่า "Excel ลำดับความสำคัญสูง" อาจเป็นวิธีที่ดี ก่อนอื่นให้สร้างไฟล์แบทช์หนึ่งบรรทัดซึ่งรันคำสั่งเริ่มต้นด้วยสวิตช์ที่เหมาะสมเช่น:

start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"

(บน Windows รุ่น 64 บิตจะเป็นเช่นนี้start "high priority excel" /max /high "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"เว้นแต่คุณจะใช้ Office รุ่น 64 บิตซึ่งมีให้บริการในปี 2010 เป็นต้นไปstart "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE") โปรดทราบว่าชื่อของหน้าต่างสามารถเป็นอะไรก็ได้ที่คุณต้องการ แต่ไม่สามารถเลือกได้

ตอนนี้บันทึกสิ่งนี้เช่น HiperExcel.cmd บางที่มีประโยชน์ - อาจเป็นโฟลเดอร์ office หรือ ac: \ script folder หรือ somesuch หรือโฟลเดอร์บ้านของคุณเพื่อให้สามารถเดินทางไปในรูปแบบของเครื่อง สร้างทางลัดใหม่ซึ่งชี้ไปที่ไฟล์นี้ทำให้โฟลเดอร์เริ่มต้นเป็นโฟลเดอร์ที่เก็บไฟล์ไว้ เลือกไอคอนสำหรับไฟล์ - เรียกดูไฟล์ปฏิบัติการ Excel.exe จากนั้นเลือกสิ่งอื่นนอกเหนือจากไอคอน Excel ปกติเพื่อความชัดเจน

คลิกทางลัดใหม่ของคุณแล้วมันจะเรียกใช้ Excel ที่ทำงานเป็นกระบวนการที่มีลำดับความสำคัญสูงโดยมีลำดับความสำคัญพื้นฐานเป็น 13 และเมื่อใช้งานมันอาจจะได้รับลำดับความสำคัญสูงสุดสำหรับกระบวนการที่ไม่ใช่เวลาจริง 15 ไม่ควรมีลำดับความสำคัญสูงกว่า โปรดทราบว่ากระบวนการเบื้องหน้าไม่ได้รับการเพิ่มระดับความสำคัญเพียงเพื่ออยู่ในเบื้องหน้า (ไม่ใช่ตั้งแต่ NT4.0) แล้วเกิดอะไรขึ้น

ใส่ใหม่สิ่งที่เรารู้จนถึงตอนนี้: กระบวนการจะเปลี่ยนไปตามลำดับความสำคัญ แต่ไม่รวมถึงการแยกกระบวนการที่มีลำดับความสำคัญต่ำกว่า (แน่นอนมีเธรดจริงๆ แต่ให้เก็บกระบวนการต่าง ๆ ไว้เพื่อความสะดวกในการอภิปราย) จะเกิดอะไรขึ้นเมื่อกระบวนการได้รับ "การเลี้ยว" ของมัน มันจะวิ่งเป็นหน่วยเวลาที่เรียกว่าควอนตัม ควอนตัมใช้เวลานานเท่าใด มันขึ้นอยู่กับ...

นี่คือที่กระบวนการพื้นหน้าได้รับการใช้ทรัพยากรมากขึ้น - เมื่อได้รับเทิร์นเทิร์นนั้นสามารถใช้เวลานานกว่าการรีเทิร์นของกระบวนการพื้นหลังสามเท่า ดังนั้นจึงอาจไม่ได้ไปบ่อยมาก (ขึ้นอยู่กับลำดับความสำคัญ) แต่เมื่อมันทำมันจะหมูมันอีกต่อไป

คุณสามารถเลือกที่จะใช้ควอนตัมแบบสั้นหรือยาว (ค่าเริ่มต้นสั้นบนเวิร์กสเตชันระบบปฏิบัติการ, แบบยาวบนเซิร์ฟเวอร์) และเพื่อให้กระบวนการพื้นหน้าเพิ่มขึ้นหรือไม่ (ตัวแปรสำหรับ w / s, แก้ไขสำหรับเซิร์ฟเวอร์โดยค่าเริ่มต้น) และถ้าเพิ่มโดย เท่าไหร่ (มีประสิทธิภาพสูงสุด 3 ครั้ง) ทีนี้ส่วนที่ซับซ้อนของเรื่องนี้คือถ้าคุณเลือกที่จะเปลี่ยนตัวคูณคุณจะได้ทุกอย่างที่มีค่าสั้นมากสำหรับควอนตัมในขณะที่ถ้าคุณปิดการใช้งานเบื้องหน้าการเพิ่มทุกอย่างจะได้รับจำนวนที่ยาวขึ้น หากคุณปิดการใช้งานแน่นอนบริการหน้าต่างพื้นหลังจะได้รับควอนตัมเช่นเดียวกับแอปพลิเคชันผู้ใช้ของคุณซึ่งอาจไม่เหมาะ คุณต้องตั้งค่าในรีจิสทรีที่: HKLM \ System \ CurrentControlSet \ Control \ PriorityControl \ Win32PrioritySeparation โดยใช้บิตมาสก์ เพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้นคุณค่าที่คุณต้องการ:

2 = ค่าเริ่มต้นหมายถึงใช้ค่าเริ่มต้นพร้อมการเพิ่มสูงสุด ค่าเริ่มต้นบนเวิร์กสเตชัน O / S สั้นและผันแปร 8 = คงที่, ควอนตัมแบบสั้น (เบื้องหน้าและพื้นหลังเท่ากัน) 40 (ฐานสิบ, x28 ฐานสิบหก) = คงที่และยาว (นี่เป็นค่าเริ่มต้นของเซิร์ฟเวอร์) 36 (ฐานสิบ, ฐานสิบหกฐานสิบหก) = สั้นตัวแปร แต่น้อยที่สุดสำหรับกระบวนการพื้นหน้า . ฉันคิดว่านี่เป็นสิ่งที่น่าจะให้ประโยชน์สูงสุดแก่คุณในการลดปริมาณการแข่งขันของแอพอื่น แต่ให้ Excel ได้รับทรัพยากรมากขึ้นเมื่ออยู่เบื้องหน้า (ตราบใดที่คุณเพิ่มระดับความสำคัญ)

ลองและดูฉันหวังว่านี่จะช่วยได้ - ระยะทางของคุณอาจแตกต่างกันไป

นอกเหนือจาก: แอปพลิเคชันหรือกระบวนการอื่น ๆ จำนวนมากไม่ได้มี CPU เป็นคอขวดของพวกเขา - ตัวอย่างของการซิงก์ Outlook และการเบราส์ IE อาจมีเครือข่ายและสำหรับ Outlook บางดิสก์ IO เป็นปัจจัยสำคัญในความเร็วของพวกเขา พื้นหน้าเพิ่มหรือไม่ผลกระทบในการมองเห็นอาจต่ำกว่าสิ่งที่คุณสามารถเห็นได้จากการสังเกตอย่างง่าย


1
BasicallyMoney.com แสดงวิธีเปลี่ยนการตั้งค่าสำหรับกฎควอนตัมผ่าน XP gui แต่การแก้ไขคีย์รีจิสทรียังคงเหมือนเดิมสำหรับระบบปฏิบัติการจาก NT4 ถึง Windows 7 ดังนั้นจึงเป็นเรื่องทั่วไป การตั้งค่า "บริการพื้นหลัง" จะเหมือนกับการตั้งค่า 'แก้ไข' และโปรดทราบว่านี่ไม่ใช่การเพิ่มระดับความสำคัญ แต่จะเปลี่ยนแปลงความยาวของ 'timeslice' ที่แต่ละกระบวนการได้รับ ลำดับความสำคัญเป็นทรัพย์สินที่เป็นเอกเทศและไม่ได้รับการส่งเสริมโดยอยู่ในเบื้องหน้า
AdamV

1

ไม่มีปัญหาในการเพิ่มลำดับความสำคัญของกระบวนการเป็น "เหนือปกติ" หรือ "สูง" เพียงแค่ไม่ตั้งเป็น "เรียลไทม์" ขออภัยในความช่วยเหลือของคุณด้วย Excel เป็นพิเศษ


1

อาจเป็นไปได้ว่า Excel ไม่ได้ดำเนินการจัดการความสำคัญ แต่เป็น Windows เอง Windows มีกลไกที่ลำดับความสำคัญของกระบวนการที่มี windows ในเบื้องหน้าเพิ่มขึ้น ดังนั้นเมื่อ Excel สูญเสียโฟกัสลำดับความสำคัญของมันจะกลับไปเป็นปกติ (ซึ่งต่ำกว่าเล็กน้อย)

หน้าเดียวใน MSDN ที่ฉันสามารถค้นหาได้ด้วยการค้นหาอย่างรวดเร็วคือPriority Boosts :

เมื่อกระบวนการที่ใช้NORMAL_PRIORITY_CLASSถูกนำไปยังเบื้องหน้าตัวจัดตารางจะเพิ่มคลาสลำดับความสำคัญของกระบวนการที่เกี่ยวข้องกับหน้าต่างเบื้องหน้าเพื่อให้มีค่ามากกว่าหรือเท่ากับคลาสลำดับความสำคัญของกระบวนการพื้นหลังใด ๆ คลาสลำดับความสำคัญกลับสู่การตั้งค่าดั้งเดิมเมื่อกระบวนการไม่อยู่ในเบื้องหน้าอีกต่อไป

จากสิ่งที่ฉันได้ยินมีวิธีการปิดใช้งานการเพิ่มระดับความสำคัญนั้น


ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ หากเป็นเช่นนั้นฉันคาดว่าแอปพลิเคชั่นอื่นจะชะลอตัวลงอย่างเห็นได้ชัดเมื่อไม่ได้โฟกัส แต่ฉันไม่ได้สังเกตว่ามีการชะลอตัวใด ๆ พูด Outlook ถ้ามันกำลังซิงค์อีเมลเมื่อโฟกัสอยู่บนเว็บเบราว์เซอร์หรือแม้กระทั่งการชะลอตัวในเบราว์เซอร์ของฉันโหลดหน้าถ้าฉันมุ่งเน้นไปที่หน้าต่าง Excel
Joe Schmoe

1
และ crunchers จำนวนเช่นงาน BOINC ทำงานที่ระดับความสำคัญต่ำในพื้นหลัง แต่ใช้ประโยชน์เต็มที่จากความจุ CPU สำรองที่มีอยู่
Alistair Knock

หน้า MSDN นั้นอธิบายถึงพฤติกรรมเก่าหรือโบราณ
เจมี่ Hanrahan

0

ลองแค่นี้ใช้ได้กับฉัน

ไม่ใช่วิธีที่ดีมาก แต่จริงๆแล้วมันเพิ่มความเร็วในการคำนวณของฉันเป็นสองเท่า! ! ที่น่าตื่นตาตื่นใจ (แต่ฉันจะตรวจสอบผลลัพธ์ไม่แน่ใจเกี่ยวกับพวกเขา ... )

userform ของคุณจะต้องอยู่ที่กึ่งกลางของหน้าจอใน 1024 * 768 เพียงแค่ส่งซอฟต์แวร์โดยคลิกขวาที่รูปแบบผู้ใช้

การคำนวณแบบเต็ม แต่อย่าใช้คอมพิวเตอร์ของคุณขณะคำนวณ (เปิดโปรแกรมอื่น ๆ หน้าต่าง .. )

เพียงแค่ลองและบอกฉันว่ามันทำงานอย่างไรสำหรับคุณ!

'In General
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Private Const MOUSEEVENTF_RIGHTUP As Long = &H10

Private Sub Optimizer()
    'activate the window
    'AppActivate "Inbox - Microsoft Outlook"
    'move the cursor where you need it, I guessed at 200,200
    'Warning here : check the center coordinates of your userform!
    SetCursorPos 512, 374
    'send a down event
    mouse_event MOUSEEVENTF_RIGHTDOWN, 0&, 0&, 0&, 0&
    'and an up
    mouse_event MOUSEEVENTF_RIGHTUP, 0&, 0&, 0&, 0&
End Sub

'Inside your code
Call Optimiser`

0

หลังจากคืนที่ยาวนานของการคำนวณความเร็วเต็มและหลังจากตรวจสอบผลลัพธ์ในเช้าวันนี้ ... ผิดทั้งหมด

ดังนั้นฉันคิดว่ามันเป็นข้อผิดพลาดการคำนวณไม่ถูกต้อง

การคลิกที่รูปแบบผู้ใช้ในการคำนวณเพียงเพิ่มความเร็วของกระบวนการ แต่จะไม่คำนวณแผ่นงานที่เหลือทั้งหมด ฉันแม่นยำฉันเป็นแบบเรียลไทม์กับ prio

อีกสิ่งที่ดีคือการปรับแต่งกระบวนการทำงานด้วย prio_x64_199_2367.exe, http://softziz.com/2010/11/prio-64-bit-1-9-9/

สิ่งนี้จะบันทึกลำดับความสำคัญของกระบวนการของคุณที่กำหนดด้วย CTRL ALT DEL ภายในตัวจัดการงานสำหรับการใช้งานในอนาคต

ขอแสดงความนับถือ,

จอห์น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.