Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Dnsperftest | 2,070 | 18 days ago | 22 | other | Shell | |||||
DNS Performance test | ||||||||||
Dnsperf | 319 | 12 hours ago | 8 | apache-2.0 | C | |||||
DNS Performance Testing Tools | ||||||||||
Flamethrower | 263 | 6 months ago | 17 | apache-2.0 | C++ | |||||
a DNS performance and functional testing utility supporting UDP, TCP, DoT and DoH (by @ns1labs) | ||||||||||
Dnsperf | 151 | 6 years ago | 4 | C | ||||||
A DNS performance tool. | ||||||||||
Nemetric | 94 | 1 | 3 years ago | 15 | February 23, 2020 | TypeScript | ||||
前端性能指标的监控,采集以及上报。用于测量第一个dom生成的时间(FP/FCP/LCP)、用户最早可操作时间(fid|tti)和组件的生命周期性能,,网络状况以及资源大小等等。向监控后台报告实际用户测量值。 | ||||||||||
Dnsperfbench | 89 | 5 years ago | 8 | April 21, 2018 | 5 | mit | Go | |||
DNS Performance Benchmarker | ||||||||||
Worldping App | 83 | 6 months ago | 72 | apache-2.0 | HTML | |||||
Celluloid Dns | 57 | 7 | 5 years ago | 2 | March 14, 2016 | 5 | Ruby | |||
UNMAINTAINED: See celluloid/celluloid#779 - Celluloid::IO-powered DNS server | ||||||||||
Performance Timing | 47 | 7 years ago | 1 | JavaScript | ||||||
performance-timing.js利用HTML5的navigation timing API进行前端性能数据采集,是性能监控平台搭建的利器 | ||||||||||
Shuke | 39 | 5 years ago | 1 | gpl-3.0 | C | |||||
A high performance authority-only dns server implemented with DPDK |
*********************** ABOUT queryperf++ **********************
queryperf++ is a framework for performance measurement on DNS server implementations. It offers the following major features, some of which are unique to queryperf++ as far as the author knows:
As a framework, queryperf++ consists of two components: the library named libqueryperf++ and the main executable program, queryperf++. For those who just want to perform basic performance tests on a specific server implementation, it should be sufficient to just build everything and run the queryperf++ program. Those who want to conduct more customized test scenarios can extend or update the library and build their own test programs.
*********************** DEPENDENCIES ***********************
queryperf++ depends on the C++ DNS library provided as part of Bundy DNS (which is available at http://bundy-dns.de). It also depends on the Boost C++ library (only header files are needed, available at http://www.boost.org/), and the default implementation uses the ASIO library (non Boost, header only version; available at http://think-async.com/) for network I/O and timer management. Since Bundy itself depends on both Boost and ASIO, queryperf++ essentially only depends on Bundy. See the next section for more specific details on how to build it.
******************** HOW TO BUILD queryperf++ *********************
As noted in the previous section, queryperf++ depends on Bundy. You'll first need to get, build, and install it. We refer to the installation directory of Bundy as ${BUNDY_INSTALL_DIR} below (so, for example, the binary file of libdns++ should be found at ${BUNDY_INSTALL_DIR}/lib). Also, as of this writing, installed header files of Bundy are not sufficient to build third party applications like queryperf++. So, in practice, you'll also need to have an extracted source tree of Bundy somewhere and have queryperf++ look for some header files there. We refer to the top directory of the Bundy source tree as ${BUNDY_SRC_DIR}. So, for example, you should be able to find a header file named name.h under ${BUNDY_SRC_DIR}/src/lib/dns. Note that you first need to build Bundy in the source tree because some of the necessary header files are dynamically generated during the build process.
If you have successfully built Bundy, you should already have Boost installed somewhere in your system (note, again, that queryperf++ only needs Boost header files). We refer to the install directory where the 'boost' subdirectory is located as ${BOOST_HEADER_DIR}. You should be able to find a file named version.hpp in the ${BOOST_HEADER_DIR}/boost directory.
Finally, you need ASIO header files. The easiest way for this set up is to use the ones included in the Bundy source tree. We assume you do it below.
Once you install all dependencies and set BUNDY_INSTALL_DIR, BUNDY_SRC_DIR, and BOOST_HEADER_DIR, the following step should just work for building queryperf++:
% ./configure --with-boost-include=${BOOST_HEADER_DIR}
--with-bundy-include=${BUNDY_SRC_DIR}/src/lib
--with-bundy-lib=${BUNDY_INSTALL_DIR}
--with-asio-include=${BUNDY_SRC_DIR}/ext/asio
% make
I have successfully built queryperf++ with several versions of g++ on FreeBSD and Linux, and with clang++ 3.4 on MacOS Mavericks.
******************** HOW TO USE queryperf++ ********************
If the build is completed successfully, you should be able to find an executable named queryperf++ in the src/bin/queryperfpp directory. There's a man page of the program in the directory. See the man for more details about how to use it.
If you are interested in building your own measurement tool based on libqueryperf++, see the source code under the src/lib directory. All necessary source files are included in the tar ball, but if you want you can also clone the development repository on github: jinmei/queryperfpp
******************** FUTURE PLANS ********************