नमूना कोड परीक्षण div () और संयुक्त डिवीजन और मॉड। मैंने इन्हें gcc -O3 के साथ संकलित किया, मुझे कंपाइलर को सबकुछ ऑप्टिमाइज़ करने से रोकने के लिए doNothing पर कॉल जोड़ना पड़ा (आउटपुट + मॉड समाधान के लिए आउटपुट 0 होगा)।
नमक के साथ ले:
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
extern doNothing(int,int); // Empty function in another compilation unit
int main() {
int i;
struct timeval timeval;
struct timeval timeval2;
div_t result;
gettimeofday(&timeval,NULL);
for (i = 0; i < 1000; ++i) {
result = div(i,3);
doNothing(result.quot,result.rem);
}
gettimeofday(&timeval2,NULL);
printf("%d",timeval2.tv_usec - timeval.tv_usec);
}
आउटपुट: १५०
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
extern doNothing(int,int); // Empty function in another compilation unit
int main() {
int i;
struct timeval timeval;
struct timeval timeval2;
int dividend;
int rem;
gettimeofday(&timeval,NULL);
for (i = 0; i < 1000; ++i) {
dividend = i / 3;
rem = i % 3;
doNothing(dividend,rem);
}
gettimeofday(&timeval2,NULL);
printf("%d",timeval2.tv_usec - timeval.tv_usec);
}
आउटपुट: 25
double
(आपकी अंतिम वस्तु) मुझे एक बुरे विचार की तरह लगती है, आप उन संख्याओं के साथ समाप्त हो जाएंगे जो पंक्तिबद्ध नहीं हैं, और आपको प्रदर्शन में खर्च कर सकते हैं निष्पादन योग्य आकार (कुछ एम्बेडेड सिस्टम पर हमेशा मेरे लिए एक मुद्दा था)।