935 GetLocalTime(&st);
936 jio_snprintf(buf, buflen, "%d-%02d-%02d %02d:%02d:%02d",
937 st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
938 return buf;
939 }
940
941 bool os::getTimesSecs(double* process_real_time,
942 double* process_user_time,
943 double* process_system_time) {
944 HANDLE h_process = GetCurrentProcess();
945 FILETIME create_time, exit_time, kernel_time, user_time;
946 BOOL result = GetProcessTimes(h_process,
947 &create_time,
948 &exit_time,
949 &kernel_time,
950 &user_time);
951 if (result != 0) {
952 FILETIME wt;
953 GetSystemTimeAsFileTime(&wt);
954 jlong rtc_millis = windows_to_java_time(wt);
955 jlong user_millis = windows_to_java_time(user_time);
956 jlong system_millis = windows_to_java_time(kernel_time);
957 *process_real_time = ((double) rtc_millis) / ((double) MILLIUNITS);
958 *process_user_time = ((double) user_millis) / ((double) MILLIUNITS);
959 *process_system_time = ((double) system_millis) / ((double) MILLIUNITS);
960 return true;
961 } else {
962 return false;
963 }
964 }
965
966 void os::shutdown() {
967 // allow PerfMemory to attempt cleanup of any persistent resources
968 perfMemory_exit();
969
970 // flush buffered output, finish log files
971 ostream_abort();
972
973 // Check for abort hook
974 abort_hook_t abort_hook = Arguments::abort_hook();
975 if (abort_hook != NULL) {
976 abort_hook();
977 }
978 }
979
|
935 GetLocalTime(&st);
936 jio_snprintf(buf, buflen, "%d-%02d-%02d %02d:%02d:%02d",
937 st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
938 return buf;
939 }
940
941 bool os::getTimesSecs(double* process_real_time,
942 double* process_user_time,
943 double* process_system_time) {
944 HANDLE h_process = GetCurrentProcess();
945 FILETIME create_time, exit_time, kernel_time, user_time;
946 BOOL result = GetProcessTimes(h_process,
947 &create_time,
948 &exit_time,
949 &kernel_time,
950 &user_time);
951 if (result != 0) {
952 FILETIME wt;
953 GetSystemTimeAsFileTime(&wt);
954 jlong rtc_millis = windows_to_java_time(wt);
955 jlong user_millis = jlong_from(user_time.dwHighDateTime, user_time.dwLowDateTime);
956 jlong system_millis = jlong_from(kernel_time.dwHighDateTime, kernel_time.dwLowDateTime);
957 *process_real_time = ((double) rtc_millis) / ((double) MILLIUNITS);
958 *process_user_time = ((double) user_millis) / ((double) (10 * MICROUNITS));
959 *process_system_time = ((double) system_millis) / ((double) (10 * MICROUNITS));
960 return true;
961 } else {
962 return false;
963 }
964 }
965
966 void os::shutdown() {
967 // allow PerfMemory to attempt cleanup of any persistent resources
968 perfMemory_exit();
969
970 // flush buffered output, finish log files
971 ostream_abort();
972
973 // Check for abort hook
974 abort_hook_t abort_hook = Arguments::abort_hook();
975 if (abort_hook != NULL) {
976 abort_hook();
977 }
978 }
979
|