Hi masterx584, เมื่อคุณกล่าวว่าช้ากว่า C code, เพียงแค่สงสัยว่ามันช้าลงสำหรับไฟล์เฉลี่ยบาง? เรากำลังพูดถึงมิลลิวินาที, มิลลิวินาทีหรือ ... ฉันหมายถึงประมาณเพื่อให้ได้ความคิดเกี่ยวกับความเร็ว ขอบคุณOriginally Posted by ;
Hi masterx584, เมื่อคุณกล่าวว่าช้ากว่า C code, เพียงแค่สงสัยว่ามันช้าลงสำหรับไฟล์เฉลี่ยบาง? เรากำลังพูดถึงมิลลิวินาที, มิลลิวินาทีหรือ ... ฉันหมายถึงประมาณเพื่อให้ได้ความคิดเกี่ยวกับความเร็ว ขอบคุณOriginally Posted by ;
ในการทดสอบบางอย่างสำหรับงานเดียวกันที่ทำใน C 50 ms JAVA ใช้งานได้ 170 ms ทั้งสองเครื่องทำงานบนเครื่องเดียวกัน Powered by i7 processor.EX4 อาจช้าลง app ของฉันใน C ทำงาน CPU ที่ 0% ใน 8 สัญลักษณ์และ 123 threads.The ขั้นตอนเดียวกันได้ใช้ 1-2% ใน 20 สัญลักษณ์และ 330 threads.As ผู้เชี่ยวชาญ ex4 อัลกอริทึมเดียวกันกับ 24 สัญลักษณ์ในเวลาข่าวถูกแช่แข็งทั้งหมด MT4 ซึ่งจำเป็นต้องรีสตาร์ทOriginally Posted by ;
ว้าว, มากความแตกต่าง!? 50 ms - 50 microseconds หรือมิลลิวินาที?Originally Posted by ;
ms = มิลลิวินาทีOriginally Posted by ;
https://softwareengineering.stackexc...lent-c-programC อยู่ใกล้กับ assembly
นี้ไม่ได้ทำให้รู้สึก i7 มี 4 cores และพิจารณาว่าคุณกำลังอัปเดตเพียง 8 สกุลเงินเท่านั้นการดำเนินการ IO bound ของคุณควรถูก จำกัด ไว้ที่ 8 หัวข้อ การคำนวณที่เหลือของ CPU แต่ละคู่จะถูก จำกัด ด้วย CPU ซึ่งเป็นจุดเริ่มต้นอีก 115 หัวข้อ? ไม่มีการเพิ่มประสิทธิภาพการทำงานเนื่องจากแต่ละเธรดจะผูกขึ้น 100% ของแต่ละแกนเมื่อ IO เสร็จสิ้นและการคำนวณจะเริ่มขึ้นOriginally Posted by ;
ไม่ได้อีกต่อไป ในบางจุดจะเป็นเช่นนั้น (ฉันคิดว่า lt; 600 builds) แต่ตอนนี้รวบรวมโค้ดพื้นเมืองและทำงานได้รวดเร็วเท่ากับ CC อย่างไรก็ตามโค้ดนี้อาจไม่ได้มีการปรับให้เหมาะสมกับคอมไพเลอร์ CC ที่เป็นที่นิยมในแง่สูงสุด การตั้งค่าOriginally Posted by ;
1 ไฟล์แนบ
เนื่องจากเป็นทฤษฎีการปฏิบัติ vs และเนื่องจาก app ของฉันได้รับการคาดการณ์ multithreaded.It เป็น multithreaded.I ทำงาน 16 asynch งาน * สัญลักษณ์ที่ไม่เคยเข้าร่วมกับเวลานอน 1ms .... บางเร็วกว่า others.I ได้รับการเริ่มต้นเพื่อให้ฉันได้ทดสอบความเร็วกับอัลกอริทึมเดียวเธรดเดียว ... มีความแตกต่างที่ดีคิดเพียงว่า 8 สัญลักษณ์ไม่เคยมีเห็บในเวลาเดียวกัน อัลกอริธึมเดียวกันกับ single threaded ช้าและแฟนซี 32 บิต MT4 ถูกแช่แข็งไม่เพียง แต่ terminal.exe แต่เครื่องคอมพิวเตอร์ทั้งหมดที่เวลาสูงสุดข่าวโดย C ฉันทำงานบน 64 บิต ... ภายใต้ MT4 u ถูกบังคับ ti อยู่ภายใน 32 บิต ... ความแตกต่างอย่างมากไม่สามารถเปรียบเทียบรหัสเครื่องที่มีผล: 32 บิตกับ 64 บิต ... ขณะนี้ฉันกำลังทำงานกับ CPU 0% อัลกอริทึมเดียวกันซึ่ง MT4 อยู่เหนือ 60% ตลอดเวลาและมีการแช่แข็งในข่าว .. CPU พูดคนเดียวถ้าฉันได้งานที่ดีหรือ not.Everything มีการเพิ่มประสิทธิภาพการทำงานของ CPU ต่ำสุดใน code.It ของฉันส่วนใหญ่เกี่ยวกับโครงสร้าง u โปรแกรมทั้งหมดและวิธี u จัดระเบียบสิ่งและที่สำคัญที่สุด beeing นอก MT4 bull $ hit .Originally Posted by ;
การปฏิบัติที่ได้รับต่อทฤษฎีการแบ่งแยกและพิชิต! พิจารณายังปล่อยรุ่น vs รุ่นแก้ปัญหา ... ฉันเป็นรุ่นOriginally Posted by ;
i7 เป็น hyperthreading ... 4 physical cores - 8 แกนลอจิคัล
รวบรวมรุ่นช้าจริงๆ ... รุ่น debug.In C ฉันรวบรวมรุ่นที่ออก .. ความแตกต่างที่สำคัญ .. ตรวจสอบด้ายของฉัน EA ของคุณกำลังถูก HACKED! เวลาที่จะโยกย้าย! เกี่ยวกับ ex4 มีรหัสแหล่งที่มาทั้งหมดภายใน .... ที่รู้ว่าถ้ามีการรวบรวมOriginally Posted by ;
อาจเป็นรหัสสไตล์ JAVA
นี่เป็นจุดที่ดีมากและฉันก็สามารถทำสำเนาผลการวิจัยของคุณซ้ำได้ ไฟล์ ex4 (คอมไพล์ในโหมดการรีลีสและไม่มี mq4) ไม่เพียงรู้จำนวนบรรทัดของข้อผิดพลาดเท่านั้น แต่ยังนับจำนวนถ่านที่แน่นอนจากขอบด้านซ้ายOriginally Posted by ;
ex4 เป็นโหมด debug หนึ่งในโหมดปล่อยรหัสทั้งหมด ฯลฯ ความคิดเห็นทำลาย .. รุ่น release C ในกรณีของฉันยัง 4 ครั้งเบาแล้วแก้จุดบกพร่อง one.There มีจำนวนมากปัจจัยที่ช่วยให้ฉันเพื่อเพิ่มความเร็ว ขึ้น appliion.I ฉันระบุเพียงไม่กี่ในความเห็นข้างต้น .... แม้ตัด dll สอดแนมที่แนบมาของโปรแกรมป้องกันไวรัส Avast ให้ฉันได้รับความเร็วเล็ก ๆ รายละเอียดเล็ก ๆ น้อย ๆ สร้างความแตกต่างOriginally Posted by ;