{"id":15562643,"url":"https://github.com/dizzzz/xmlperformance","last_synced_at":"2025-03-29T04:48:47.263Z","repository":{"id":70877822,"uuid":"52915186","full_name":"dizzzz/XmlPerformance","owner":"dizzzz","description":"A tool set to measure performance of XML libraries","archived":false,"fork":false,"pushed_at":"2016-03-28T14:56:17.000Z","size":46,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-03T14:49:20.834Z","etag":null,"topics":["compression","exi","fastinfoset","java","performance","stax","xml","xsd"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dizzzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-01T22:32:03.000Z","updated_at":"2023-12-06T13:01:11.000Z","dependencies_parsed_at":"2023-02-23T15:16:00.408Z","dependency_job_id":null,"html_url":"https://github.com/dizzzz/XmlPerformance","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":"0.47058823529411764","last_synced_commit":"6e245c38c32a538eb4e631a34c54c2c48db2b130"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzzz%2FXmlPerformance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzzz%2FXmlPerformance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzzz%2FXmlPerformance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzzz%2FXmlPerformance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dizzzz","download_url":"https://codeload.github.com/dizzzz/XmlPerformance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246140548,"owners_count":20729798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compression","exi","fastinfoset","java","performance","stax","xml","xsd"],"created_at":"2024-10-02T16:15:46.329Z","updated_at":"2025-03-29T04:48:47.244Z","avatar_url":"https://github.com/dizzzz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XmlPerformance\nA small project to measure performance of XML tooling (processors)\n\nUsed StAX Parsers:\n- https://github.com/FasterXML/woodstox\n- https://github.com/FasterXML/aalto-xml\n- Oracle Java Bundled reference implementation\n\n## Get started:\n* add a file `in.xml` and `in.xsd` into the `data` directory (yet missing)\n* run `nl.wexsol.xml.performance.parse.stax.Main` or `nl.wexsol.xml.performance.compression.Main`\n\n\n## Dataset\n* 6.8 Mb XML\n* 903 kb XSD\n* 100 iterations\n\n## Results\n### Compression\n```\nOriginal size: 6 MB\nRepetitions: 10\n\nCompressed sizes:\ngzip=546 KB\nxz=243 KB\nbzip2=275 KB\nexi=235 KB\nexi-schema=198 KB\nfastinfoset=1 MB\n\nTiming: \ngzip: avg=142.4 ms  max=150 ms  min=139 ms\nxz: avg=2859.0 ms  max=3017 ms  min=2660 ms\nbzip2: avg=1743.1 ms  max=2027 ms  min=1664 ms\nexi: avg=967.4 ms  max=987 ms  min=954 ms\nexi-schema: avg=965.8 ms  max=1045 ms  min=924 ms\nfastinfoset: avg=160.0 ms  max=244 ms  min=147 ms\n```\n\nConclusions (for this dataset!)\n- fastinfoset compression yields in a larger file size compared to the generic GZIP compressor\n- EXI compression is 5-6 times slower compared to GZIP compression\n- EXI compression is yields in files 1/2 the size compared to GZIP\n- XZ and Bzip2 compress better than GZip but are resp. 20 and 10 times slower.\n\n### StAX\n```\nOriginal size: 6 MB\nRepetitions: 100\n\ncom.sun.xml.internal.stream.XMLInputFactoryImpl\nEventReader: #=316854  avg=225.55 ms  max=548 ms  min=210 ms\nStreamReader: #=316854  avg=107.33 ms  max=121 ms  min=104 ms\n\ncom.fasterxml.aalto.stax.InputFactoryImpl\nEventReader: #=316854  avg=118.54 ms  max=346 ms  min=108 ms\nStreamReader: #=316854  avg=70.05 ms  max=96 ms  min=66 ms\n\ncom.ctc.wstx.stax.WstxInputFactory\nEventReader: #=316854  avg=145.99 ms  max=316 ms  min=137 ms\nStreamReader: #=316854  avg=88.43 ms  max=97 ms  min=87 ms\n```\n\nConclusions (for this dataset!)\n- In general, StreamReaders are upto 2 times faster compared to EventReaders\n- The \"Aalto XML processor\" is the fastest StAX parser followed by the WoodStox parser. The Oracle VM provides the slowest StAX parser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdizzzz%2Fxmlperformance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdizzzz%2Fxmlperformance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdizzzz%2Fxmlperformance/lists"}