{"id":13367529,"url":"https://github.com/mrLSD/Go-benchmark-app","last_synced_at":"2025-03-12T20:30:47.210Z","repository":{"id":50749204,"uuid":"79909237","full_name":"mrLSD/go-benchmark-app","owner":"mrLSD","description":"Application for HTTP benchmarking via different rules and configs","archived":false,"fork":false,"pushed_at":"2017-03-17T11:40:10.000Z","size":97,"stargazers_count":27,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T02:42:23.879Z","etag":null,"topics":["benchmark","efficiency","golang-tools"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrLSD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-24T12:24:08.000Z","updated_at":"2023-10-04T00:35:21.000Z","dependencies_parsed_at":"2022-09-02T23:51:47.295Z","dependency_job_id":null,"html_url":"https://github.com/mrLSD/go-benchmark-app","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrLSD%2Fgo-benchmark-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrLSD%2Fgo-benchmark-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrLSD%2Fgo-benchmark-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrLSD%2Fgo-benchmark-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrLSD","download_url":"https://codeload.github.com/mrLSD/go-benchmark-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243290604,"owners_count":20267748,"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":["benchmark","efficiency","golang-tools"],"created_at":"2024-07-30T00:01:52.714Z","updated_at":"2025-03-12T20:30:46.917Z","avatar_url":"https://github.com/mrLSD.png","language":"Go","readme":"# Go Benchmark App \n[![Build Status](https://travis-ci.org/mrLSD/go-benchmark-app.svg?branch=master)](https://travis-ci.org/mrLSD/go-benchmark-app)   [![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/mrLSD/go-benchmark-app/master/LICENSE)  [![codecov](https://codecov.io/gh/mrLSD/go-benchmark-app/branch/master/graph/badge.svg)](https://codecov.io/gh/mrLSD/go-benchmark-app)  [![Coverage Status](https://coveralls.io/repos/github/mrLSD/go-benchmark-app/badge.svg?branch=master)](https://coveralls.io/github/mrLSD/go-benchmark-app?branch=master)  [![Go Report Card](https://goreportcard.com/badge/github.com/mrLSD/go-benchmark-app)](https://goreportcard.com/report/github.com/mrLSD/go-benchmark-app)  [![GoDoc](https://godoc.org/github.com/mrLSD/go-benchmark-app?status.png)](https://godoc.org/github.com/mrLSD/go-benchmark-app)\n\n_The efficiency and speed of application - our goal and the basic idea._\n\n![Go Benchmark App ](http://letzgro.net/wp-content/uploads/2016/01/banners-4.png)\n\nApplication for HTTP-benchmarking via different rules and configurations.\n\nConfigurations provided via TOML-config.\n\nOur main aims - compare different web-applications \nthat we want to compare with same benchmarks tools, \nsame parameters, repeated and distributed in time.\nGet average results and compare it with other applications.\n\nThis will allow us to analyze and compare the performance \nbottlenecks, and to take appropriate measures.\nThe efficiency and speed of application - our goal and the \nbasic idea.\n\n## Benchmarks tools \n`ab`, `wrk`, `siege`\n\nIt should be installed.\n\n## How to configure\nAll config at `config/main.toml`\n\n````\n# Title for describing benchmarks\ntitle = \"CMS benchmarks\"\n# Benchmarks version\nversion = \"0.1\"\n# Delay via try in seconds\ndelay = 20\n# How much we should try\ntry = 10\n\n# ab benchmarks parametres\n[ab]\nconcurency = 5000\nkeepalive = false\nrequests = 10000\n\n# wrk benchmarks parametres\n[wrk]\nconnections = 5000\nduration = 10\nthreads = 1000\n\n# siege benchmarks parametres\n[siege]\nconcurrent = 100\ntime = 30\n\n# Applications parametres - list\n[[app]]\ntitle = \"Application Banchamrs Title\"\npath = \"fool/path/to/app\"\nurl = \"http://localhost:5000/test\"\n````\n\n## How to use\n* Installed `Go 1.6+`\n* Check is benchmarks tools installed:\n\n\t`$ whereis ab`\n\t\n\t`$ whereis wrk`\n\t\n\t`$ whereis siege` \n* Configure `config/main.toml` in current dirrectory as mentioned before.\n* Install application: `$ go install github.com/mrlsd/go-benchmark-app`\n* Command-line help: `$ go-benchmark-app -h`\n```\nGo Benchmark Applications v1.0.0\nOptions:\n  -c FILE\n    \tload configuration from FILE (default \"config/main.toml\")\n  -v\tverbose output\n```\n* To change config file - run: `$ go-benchmark-app -c path/to/cfg.toml`\n* Verbose output: `$ go-benchmark-app -v`\n\n## Tips \u0026 Tricks\n* When your benchmarks test failed with socket error \n(more resources unawailable), try increase `delay` options\n at config file (for example 60 sec) or/and change system \n limits to opened files, TCP/IP configuration and other \n system limitations.\n* For flexibility running test applications you can create\nrecipe for that. For example set at config file:\n```\n[[app]]\ntitle = \"My App\"\npath = \"apps/myapp.sh\"\nurl = \"http://localhost:5000/test\"\n```\n\nand `apps/myapp.sh` file:\n```\n#!/bin/sh\nprepare -to -run\n/full/path/to/app -v param -d param -etc\n```\nin that way you can run `docker`, `nginx` or another\nuseful commands.\n\nFor one application we use one `URL`, because it's simplify\nresults analyze, interpretation, comparison.\n\n#### License: MIT [![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/mrLSD/go-benchmark-app/master/LICENSE)\n","funding_links":[],"categories":["基准测试","基準測試"],"sub_categories":["其他软件","其他軟件"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FmrLSD%2FGo-benchmark-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FmrLSD%2FGo-benchmark-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FmrLSD%2FGo-benchmark-app/lists"}