excel_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package utilx
  2. import (
  3. "runtime"
  4. "testing"
  5. )
  6. func getCurrentMemoryUsage() uint64 {
  7. var m runtime.MemStats
  8. runtime.ReadMemStats(&m)
  9. return m.Alloc
  10. }
  11. func TestXlsx(t *testing.T) {
  12. // 获取当前内存使用量
  13. startMemory := getCurrentMemoryUsage()
  14. t.Logf("Start memory: %d MB", startMemory/1024/1024)
  15. data := make([][]interface{}, 0)
  16. line := []interface{}{
  17. "1",
  18. "线上订单",
  19. "XJ240429000560",
  20. "huishoubao:1714383615112",
  21. "-",
  22. "iPhone 11",
  23. "huishoubao:1.00元",
  24. "-",
  25. "",
  26. "BD",
  27. "-",
  28. "2024-04-29 17:40:15",
  29. "-",
  30. "-",
  31. "-",
  32. "-",
  33. "-",
  34. "-",
  35. "-",
  36. "-",
  37. "-",
  38. }
  39. for i := 0; i < 100000; i++ {
  40. data = append(data, line)
  41. }
  42. dataMemory := getCurrentMemoryUsage()
  43. t.Logf("Data memory: %d MB", dataMemory/1024/1024)
  44. file, err := XlsxV2(data, "订单列表.xlsx")
  45. xlsxMemory := getCurrentMemoryUsage()
  46. t.Logf("xlsx memory: %d MB", xlsxMemory/1024/1024)
  47. if err != nil {
  48. t.Errorf("Xlsx failed, err: %v", err)
  49. return
  50. }
  51. file.Path = "/Users/zhangyu/Downloads/xx.xlsx"
  52. _ = file.Save()
  53. // 再次获取内存使用量
  54. endMemory := getCurrentMemoryUsage()
  55. t.Logf("End memory: %d MB", endMemory/1024/1024)
  56. // 计算最终内存增长
  57. memoryGrowth := endMemory - startMemory
  58. t.Logf("Memory growth: %d MB", memoryGrowth/1024/1024)
  59. }