createBuffer.bench.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { bench, describe } from 'vitest'
  2. import { createBuffer as _createBuffer } from '../src/render'
  3. // move to local const to avoid import access overhead
  4. // https://github.com/vitest-dev/vitest/issues/6903
  5. const createBuffer = _createBuffer
  6. describe('createBuffer', () => {
  7. let stringBuffer = createBuffer()
  8. bench(
  9. 'string only',
  10. () => {
  11. for (let i = 0; i < 10; i += 1) {
  12. stringBuffer.push('hello')
  13. }
  14. },
  15. {
  16. setup() {
  17. stringBuffer = createBuffer()
  18. },
  19. },
  20. )
  21. let stringNestedBuffer = createBuffer()
  22. bench(
  23. 'string with nested',
  24. () => {
  25. for (let i = 0; i < 10; i += 1) {
  26. if (i % 3 === 0) {
  27. stringNestedBuffer.push('hello')
  28. } else {
  29. const buffer = createBuffer()
  30. buffer.push('hello')
  31. stringNestedBuffer.push(buffer.getBuffer())
  32. }
  33. }
  34. },
  35. {
  36. setup() {
  37. stringNestedBuffer = createBuffer()
  38. },
  39. },
  40. )
  41. bench(
  42. 'string with nested async',
  43. () => {
  44. for (let i = 0; i < 10; i += 1) {
  45. if (i % 3 === 0) {
  46. const buffer = createBuffer()
  47. buffer.push('hello')
  48. stringNestedBuffer.push(Promise.resolve(buffer.getBuffer()))
  49. } else {
  50. const buffer = createBuffer()
  51. buffer.push('hello')
  52. stringNestedBuffer.push(buffer.getBuffer())
  53. }
  54. }
  55. },
  56. {
  57. setup() {
  58. stringNestedBuffer = createBuffer()
  59. },
  60. },
  61. )
  62. })