मेरे पास कई .h और .c फ़ाइलों और कई फ़ंक्शंस से बना एक प्रोग्राम है। और ऐसे कार्य हैं जो अन्य कार्यों को बुलाते हैं और इसी तरह। अब, यह वास्तव में एक असाइनमेंट है इसलिए मुझे पता है कि कार्यक्रम को अंत तक पहुंचने की कितनी आवश्यकता है।एक सी प्रोग्राम को धीमा कर रहा है यह जानने के लिए उपकरण?
समस्या यह है कि, मेरे कार्यक्रम को दिए गए समय की तुलना में बहुत अधिक समय लगता है। क्या यह पता लगाना संभव है कि कौन सा फ़ंक्शन बहुत अधिक समय ले रहा है या कोड का कौन सा हिस्सा प्रोग्राम को दबा रहा है?
मैंने कोड यहां नहीं दिया क्योंकि यह बहुत लंबा है। मुझे पता है कि कोई भी जवाब नहीं दे सकता कि क्यों "मेरा कार्यक्रम" धीमा है लेकिन मैं सामान्य रूप से बात कर रहा हूं! क्या कोई ऐसा उपकरण है जो मापता है कि प्रत्येक कार्य कितना समय लेता है या कुछ समान होता है? मैं जीसीसी का उपयोग कर रहा हूं और मैं लिनक्स पर हूं।
यह असंभव है। रूट कारणों का एक संपूर्ण ब्रह्मांड मौजूद है और आपने हमें कोड भी नहीं दिखाया है। –
आपको [प्रोफाइलिंग] में देखना चाहिए (https://en.wikipedia.org/wiki/Profiling_%28computer_programming%29)। यह वास्तव में प्रक्रिया है जो आपकी समस्या का समाधान करेगी। ('gprof' एक प्रोफाइलर का एक उदाहरण है जो अक्सर यूनिक्स/लिनक्स सिस्टम पर पूर्व-स्थापित होता है।) – huon
आपको वास्तव में @dbaupp द्वारा संकेत के अनुसार अपना कोड प्रोफाइल करना चाहिए। कुछ टूल्स - valgrind = http://valgrind.org/, gprof = http: //www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html ... http: //oprofile.sourceforge। नेट/समाचार/= OProfile। जीपीआरओफ़ उनमें से बहुत अच्छा है मैं अक्सर इसका इस्तेमाल करता हूं। – verisimilitude