package utilx import ( "runtime" "testing" ) func getCurrentMemoryUsage() uint64 { var m runtime.MemStats runtime.ReadMemStats(&m) return m.Alloc } func TestXlsx(t *testing.T) { // 获取当前内存使用量 startMemory := getCurrentMemoryUsage() t.Logf("Start memory: %d MB", startMemory/1024/1024) data := make([][]interface{}, 0) line := []interface{}{ "1", "线上订单", "XJ240429000560", "huishoubao:1714383615112", "-", "iPhone 11", "huishoubao:1.00元", "-", "", "BD", "-", "2024-04-29 17:40:15", "-", "-", "-", "-", "-", "-", "-", "-", "-", } for i := 0; i < 100000; i++ { data = append(data, line) } dataMemory := getCurrentMemoryUsage() t.Logf("Data memory: %d MB", dataMemory/1024/1024) file, err := XlsxV2(data, "订单列表.xlsx") xlsxMemory := getCurrentMemoryUsage() t.Logf("xlsx memory: %d MB", xlsxMemory/1024/1024) if err != nil { t.Errorf("Xlsx failed, err: %v", err) return } file.Path = "/Users/zhangyu/Downloads/xx.xlsx" _ = file.Save() // 再次获取内存使用量 endMemory := getCurrentMemoryUsage() t.Logf("End memory: %d MB", endMemory/1024/1024) // 计算最终内存增长 memoryGrowth := endMemory - startMemory t.Logf("Memory growth: %d MB", memoryGrowth/1024/1024) }