avoid 64 bit integer division in Stopwatch_ElapsedMilliseconds, ~200 lines less in webclient

This commit is contained in:
UnknownShadow200 2020-12-13 08:41:43 +11:00
parent 10c958eed9
commit f8e1df2e21
4 changed files with 7 additions and 5 deletions

View File

@ -1005,7 +1005,7 @@ static void WorkerLoop(void) {
request.result = Http_BackendDo(&request, &url);
end = Stopwatch_Measure();
elapsed = (int)Stopwatch_ElapsedMilliseconds(beg, end);
elapsed = Stopwatch_ElapsedMilliseconds(beg, end);
Platform_Log4("HTTP: result %i (http %i) in %i ms (%i bytes)",
&request.result, &request.statusCode, &elapsed, &request.size);
Http_FinishRequest(&request);

View File

@ -191,8 +191,10 @@ cc_uint64 Stopwatch_ElapsedMicroseconds(cc_uint64 beg, cc_uint64 end) {
return ((end - beg) * sw_freqMul) / sw_freqDiv;
}
cc_uint64 Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end) {
return Stopwatch_ElapsedMicroseconds(beg, end) / 1000;
int Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end) {
cc_uint64 raw = Stopwatch_ElapsedMicroseconds(beg, end);
if (raw > Int32_MaxValue) return Int32_MaxValue / 1000;
return (int)raw / 1000;
}
#if defined CC_BUILD_WIN

View File

@ -141,7 +141,7 @@ CC_API cc_uint64 Stopwatch_Measure(void);
/* Returns total elapsed microseconds between two stopwatch measurements. */
CC_API cc_uint64 Stopwatch_ElapsedMicroseconds(cc_uint64 beg, cc_uint64 end);
/* Returns total elapsed milliseconds between two stopwatch measurements. */
CC_API cc_uint64 Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end);
CC_API int Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end);
/* Returns non-zero if the given directory exists. */
CC_API int Directory_Exists(const cc_string* path);

View File

@ -534,7 +534,7 @@ static void Classic_LevelFinalise(cc_uint8* data) {
int delta;
end = Stopwatch_Measure();
delta = (int)Stopwatch_ElapsedMilliseconds(map_receiveBeg, end);
delta = Stopwatch_ElapsedMilliseconds(map_receiveBeg, end);
Platform_Log1("map loading took: %i", &delta);
map_begunLoading = false;
WoM_CheckSendWomID();