time.ticks() on Linux/macOS

pull/853/head
Alexander Medvednikov 2019-06-30 14:35:26 +02:00
parent b79defd7a9
commit b0c844415d
3 changed files with 15 additions and 4 deletions

View File

@ -405,6 +405,7 @@ string _STR_TMP(const char *fmt, ...) {
} }
fn (c mut V) cc() { fn (c mut V) cc() {
ticks := time.ticks()
linux_host := os.user_os() == 'linux' linux_host := os.user_os() == 'linux'
c.log('cc() isprod=$c.is_prod outname=$c.out_name') c.log('cc() isprod=$c.is_prod outname=$c.out_name')
mut a := ['-w']// arguments for the C compiler mut a := ['-w']// arguments for the C compiler
@ -530,6 +531,10 @@ mut args := ''
} }
println('linux cross compilation done. resulting binary: "$c.out_name"') println('linux cross compilation done. resulting binary: "$c.out_name"')
} }
if c.show_c_cmd {
diff := time.ticks() - ticks
println('cc() took $diff ms ')
}
//os.rm('$TmpPath/$c.out_name_c') //os.rm('$TmpPath/$c.out_name_c')
} }

View File

@ -25,7 +25,7 @@ mut:
const ( const (
SINGLE_QUOTE = `\'` SINGLE_QUOTE = `\'`
QUOTE = `"` //QUOTE = `"`
) )
fn new_scanner(file_path string) *Scanner { fn new_scanner(file_path string) *Scanner {

View File

@ -273,18 +273,24 @@ pub fn (t Time) weekday_str() string {
return Days.substr(i * 3, (i + 1) * 3) return Days.substr(i * 3, (i + 1) * 3)
} }
struct C.timeval {
tv_sec int
tv_usec int
}
// in ms // in ms
pub fn ticks() f64 { pub fn ticks() i64 {
$if windows { $if windows {
return C.GetTickCount() return C.GetTickCount()
} }
panic('not implemented') ts := C.timeval{}
C.gettimeofday(&ts,0)
return ts.tv_sec * 1000 + (ts.tv_usec / 1000)
/* /*
t := i64(C.mach_absolute_time()) t := i64(C.mach_absolute_time())
# Nanoseconds elapsedNano = AbsoluteToNanoseconds( *(AbsoluteTime *) &t ); # Nanoseconds elapsedNano = AbsoluteToNanoseconds( *(AbsoluteTime *) &t );
# return (double)(* (uint64_t *) &elapsedNano) / 1000000; # return (double)(* (uint64_t *) &elapsedNano) / 1000000;
*/ */
return f64(0)
} }
pub fn sleep(seconds int) { pub fn sleep(seconds int) {