benchmark_test.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package pinyin
  2. import (
  3. "strings"
  4. "testing"
  5. )
  6. var hans500 = strings.Replace(strings.Replace(`
  7. 的、一、是、在、不、了、有、和、人、这、中、大、为、上、个、国、我、以、要、他、
  8. 时、来、用、们、生、到、作、地、于、出、就、分、对、成、会、可、主、发、年、动、
  9. 同、工、也、能、下、过、子、说、产、种、面、而、方、后、多、定、行、学、法、所、
  10. 民、得、经、十、三、之、进、着、等、部、度、家、电、力、里、如、水、化、高、自、
  11. 二、理、起、小、物、现、实、加、量、都、两、体、制、机、当、使、点、从、业、本、
  12. 去、把、性、好、应、开、它、合、还、因、由、其、些、然、前、外、天、政、四、日、
  13. 那、社、义、事、平、形、相、全、表、间、样、与、关、各、重、新、线、内、数、正、
  14. 心、反、你、明、看、原、又、么、利、比、或、但、质、气、第、向、道、命、此、变、
  15. 条、只、没、结、解、问、意、建、月、公、无、系、军、很、情、者、最、立、代、想、
  16. 已、通、并、提、直、题、党、程、展、五、果、料、象、员、革、位、入、常、文、总、
  17. 次、品、式、活、设、及、管、特、件、长、求、老、头、基、资、边、流、路、级、少、
  18. 图、山、统、接、知、较、将、组、见、计、别、她、手、角、期、根、论、运、农、指、
  19. 几、九、区、强、放、决、西、被、干、做、必、战、先、回、则、任、取、据、处、队、
  20. 南、给、色、光、门、即、保、治、北、造、百、规、热、领、七、海、口、东、导、器、
  21. 压、志、世、金、增、争、济、阶、油、思、术、极、交、受、联、什、认、六、共、权、
  22. 收、证、改、清、己、美、再、采、转、更、单、风、切、打、白、教、速、花、带、安、
  23. 场、身、车、例、真、务、具、万、每、目、至、达、走、积、示、议、声、报、斗、完、
  24. 类、八、离、华、名、确、才、科、张、信、马、节、话、米、整、空、元、况、今、集、
  25. 温、传、土、许、步、群、广、石、记、需、段、研、界、拉、林、律、叫、且、究、观、
  26. 越、织、装、影、算、低、持、音、众、书、布、复、容、儿、须、际、商、非、验、连、
  27. 断、深、难、近、矿、千、周、委、素、技、备、半、办、青、省、列、习、响、约、支、
  28. 般、史、感、劳、便、团、往、酸、历、市、克、何、除、消、构、府、称、太、准、精、
  29. 值、号、率、族、维、划、选、标、写、存、候、毛、亲、快、效、斯、院、查、江、型、
  30. 眼、王、按、格、养、易、置、派、层、片、始、却、专、状、育、厂、京、识、适、属、
  31. 圆、包、火、住、调、满、县、局、照、参、红、细、引、听、该、铁、价、严、龙、飞
  32. `, "、", "", -1), "\n", "", -1)
  33. func benchmarkPinyin(b *testing.B, s string, args Args) {
  34. b.StopTimer()
  35. b.StartTimer()
  36. for i := 0; i < b.N; i++ {
  37. Pinyin(s, args)
  38. }
  39. }
  40. func benchmarkLazyPinyin(b *testing.B, s string, args Args) {
  41. b.StopTimer()
  42. b.StartTimer()
  43. for i := 0; i < b.N; i++ {
  44. LazyPinyin(s, args)
  45. }
  46. }
  47. func BenchmarkPinyinOne(b *testing.B) {
  48. args := NewArgs()
  49. benchmarkPinyin(b, "中", args)
  50. }
  51. func BenchmarkPinyin500(b *testing.B) {
  52. args := NewArgs()
  53. benchmarkPinyin(b, hans500, args)
  54. }
  55. func BenchmarkLazyPinyinOne(b *testing.B) {
  56. args := NewArgs()
  57. benchmarkLazyPinyin(b, "中", args)
  58. }
  59. func BenchmarkLazyPinyin500(b *testing.B) {
  60. args := NewArgs()
  61. benchmarkLazyPinyin(b, hans500, args)
  62. }