func_time.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package utils
  2. import (
  3. "bet24.com/log"
  4. "fmt"
  5. "net"
  6. //"syscall"
  7. "time"
  8. //"unsafe"
  9. )
  10. var min_trace_time int64
  11. func SetMinTraceTime(min int64) {
  12. min_trace_time = min
  13. }
  14. func TimeCost(func_name string) func() {
  15. if min_trace_time == 0 {
  16. min_trace_time = 200
  17. }
  18. start := time.Now()
  19. return func() {
  20. tc := time.Since(start)
  21. if tc.Milliseconds() >= min_trace_time {
  22. log.Release("%v run cost %v", func_name, tc)
  23. }
  24. }
  25. }
  26. func SetConsoleTitle(title string) {
  27. // handle, err := syscall.LoadLibrary("Kernel32.dll")
  28. // if err != nil {
  29. // return 0, err
  30. // }
  31. // defer syscall.FreeLibrary(handle)
  32. // proc, err := syscall.GetProcAddress(handle, "SetConsoleTitleW")
  33. // if err != nil {
  34. // return 0, err
  35. // }
  36. // r, _, err := syscall.Syscall(proc, 1, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(title))), 0, 0)
  37. //return int(r), err
  38. }
  39. func CheckPortInUse(port int) bool {
  40. tcpAddress, err := net.ResolveTCPAddr("tcp4", fmt.Sprintf(":%d", port))
  41. if err != nil {
  42. return false
  43. }
  44. listener, err := net.ListenTCP("tcp", tcpAddress)
  45. if err != nil {
  46. return true
  47. }
  48. listener.Close()
  49. return false
  50. }