* Benchmarks CSV renderer performance
()
| 149 | * Benchmarks CSV renderer performance |
| 150 | */ |
| 151 | function benchmarkCsvRenderer () { |
| 152 | console.log("\n📊 CSV Renderer Benchmarks"); |
| 153 | console.log("-".repeat(40)); |
| 154 | |
| 155 | const suite = new Benchmark.Suite(); |
| 156 | const csvRenderer = renderers.get("text/csv"); |
| 157 | const { req, res } = createMockReqRes("text/csv"); |
| 158 | |
| 159 | // CSV works best with arrays of flat objects |
| 160 | const csvData = { |
| 161 | small: [testData.simple], |
| 162 | medium: testData.medium.users.map(user => ({ |
| 163 | id: user.id, |
| 164 | name: user.name, |
| 165 | email: user.email, |
| 166 | active: user.active, |
| 167 | age: user.profile.age, |
| 168 | department: user.profile.department |
| 169 | })), |
| 170 | large: testData.arrayData |
| 171 | }; |
| 172 | |
| 173 | suite |
| 174 | .add("CSV Renderer - Small (1 row)", () => { |
| 175 | csvRenderer(req, res, csvData.small); |
| 176 | }) |
| 177 | .add("CSV Renderer - Medium (100 rows)", () => { |
| 178 | csvRenderer(req, res, csvData.medium); |
| 179 | }) |
| 180 | .add("CSV Renderer - Large (500 rows)", () => { |
| 181 | csvRenderer(req, res, csvData.large); |
| 182 | }) |
| 183 | .on("cycle", event => { |
| 184 | console.log(` ${String(event.target)}`); |
| 185 | }) |
| 186 | .on("complete", function () { |
| 187 | console.log(` Fastest: ${this.filter("fastest").map("name")}`); |
| 188 | }) |
| 189 | .run(); |
| 190 | } |
| 191 | |
| 192 | /** |
| 193 | * Benchmarks YAML renderer performance |
no test coverage detected