Top Related Projects
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
Google SafetyNet attestation workarounds for Magisk
Quick Overview
KDiskMark is a free and open-source disk benchmark tool for Windows, designed to measure the read and write performance of storage devices such as hard drives, solid-state drives (SSDs), and USB flash drives. It provides a simple and intuitive user interface for testing various disk performance metrics.
Pros
- Cross-platform: KDiskMark is available for Windows, making it accessible to a wide range of users.
- Comprehensive testing: The tool supports various disk performance tests, including sequential read/write, random read/write, and more.
- Customizable settings: Users can adjust test parameters, such as file size, number of threads, and test duration, to suit their specific needs.
- Open-source: As an open-source project, KDiskMark benefits from community contributions and transparency.
Cons
- Limited platform support: KDiskMark is only available for Windows, excluding users of other operating systems.
- Dated user interface: The user interface of KDiskMark may appear outdated compared to more modern disk benchmark tools.
- Limited reporting options: The tool's reporting capabilities are relatively basic, with limited options for exporting or sharing test results.
- Potential compatibility issues: Some users have reported compatibility issues with certain storage devices or configurations.
Getting Started
Since KDiskMark is a standalone application and not a code library, there are no code examples to provide. Instead, here are the steps to get started with KDiskMark:
- Download the latest version of KDiskMark from the official GitHub repository: https://github.com/JonMagon/KDiskMark/releases
- Extract the downloaded ZIP file to a directory of your choice.
- Run the
KDiskMark.exe
file to launch the KDiskMark application. - In the main window, select the storage device you want to test from the dropdown menu.
- Adjust the test settings, such as file size, number of threads, and test duration, according to your needs.
- Click the "Start" button to begin the disk performance test.
- Once the test is complete, the results will be displayed in the main window, showing various performance metrics for your storage device.
- You can save the test results or export them to a file for future reference.
That's the basic process to get started with KDiskMark. The tool's intuitive user interface and customizable settings make it easy to use for a wide range of users.
Competitor Comparisons
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
Pros of BCC
- BCC provides a powerful and flexible framework for writing custom Linux kernel tracing and monitoring tools, allowing for deep insights into system behavior.
- BCC supports a wide range of kernel tracing capabilities, including tracepoints, kprobes, uprobes, and more, making it a versatile tool for various use cases.
- BCC's Python-based interface makes it easy to develop and deploy custom tracing tools, leveraging the rich ecosystem of Python libraries and tools.
Cons of BCC
- BCC requires a deeper understanding of the Linux kernel and its internals, which may be a barrier for some users.
- BCC's dependency on the Linux kernel version and configuration can make it more challenging to use across different environments.
- BCC's performance impact on the system being traced may be higher compared to more lightweight tracing tools.
Code Comparison
KDiskMark (C++):
void KDiskMark::run()
{
// Perform disk benchmark
// ...
emit resultReady(m_result);
}
BCC (Python):
from bcc import BPF
# Load BPF program
b = BPF(text="""
int hello(void *ctx) {
bpf_trace_printk("Hello, World!\\n");
return 0;
}
""")
# Attach BPF program to a kernel tracepoint
b.attach_kprobe(event="sys_clone", fn_name="hello")
# Print BPF output
while True:
try:
print(b.trace_fields())
except KeyboardInterrupt:
exit()
Google SafetyNet attestation workarounds for Magisk
Pros of safetynet-fix
- Provides a reliable solution for bypassing SafetyNet checks on Android devices
- Actively maintained and updated to support the latest Android versions
- Offers a user-friendly interface for easy installation and configuration
Cons of safetynet-fix
- Requires root access on the device, which may not be available for all users
- May not work with certain device models or custom ROMs
- Potential compatibility issues with other system modifications or apps
Code Comparison
Here's a brief comparison of the code structure between the two repositories:
KDiskMark
public class KDiskMark extends AppCompatActivity {
private static final String TAG = "KDiskMark";
private static final int REQUEST_CODE_STORAGE_PERMISSION = 1;
private TextView tvReadSpeed, tvWriteSpeed;
private Button btnStart;
private ProgressBar progressBar;
private DiskSpeedTest diskSpeedTest;
safetynet-fix
class SafetyNetFixActivity : AppCompatActivity() {
private lateinit var binding: ActivitySafetynetFixBinding
private lateinit var safetyNetFix: SafetyNetFix
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySafetynetFixBinding.inflate(layoutInflater)
setContentView(binding.root)
safetyNetFix = SafetyNetFix(this)
The key differences are the programming languages used (Java vs. Kotlin) and the overall structure of the code, with KDiskMark using a more traditional Java-based approach and safetynet-fix utilizing Kotlin and the modern Android View Binding library.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
KDiskMark
KDiskMark is an HDD and SSD benchmark tool with a very friendly graphical user interface. KDiskMark with its presets and powerful GUI calls Flexible I/O Tester and handles the output to provide an easy to view and interpret comprehensive benchmark result. The application is written in C++ with Qt and doesn't have any KDE dependencies.
Features
- Configurable block size, queues, and threads count for each test
- Many languages support
- Report generation
Report Example
KDiskMark (3.0.0): https://github.com/JonMagon/KDiskMark
Flexible I/O Tester (fio-3.30): https://github.com/axboe/fio
--------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes
[Read]
Sequential 1 MiB (Q= 8, T= 1): 508.897 MB/s [ 497.0 IOPS] < 13840.05 us>
Sequential 1 MiB (Q= 1, T= 1): 438.278 MB/s [ 428.0 IOPS] < 2280.14 us>
Random 4 KiB (Q= 32, T= 1): 354.657 MB/s [ 88664.6 IOPS] < 352.37 us>
Random 4 KiB (Q= 1, T= 1): 44.166 MB/s [ 11041.6 IOPS] < 88.48 us>
[Write]
Sequential 1 MiB (Q= 8, T= 1): 460.312 MB/s [ 449.5 IOPS] < 15153.11 us>
Sequential 1 MiB (Q= 1, T= 1): 333.085 MB/s [ 325.3 IOPS] < 2349.82 us>
Random 4 KiB (Q= 32, T= 1): 315.170 MB/s [ 78792.5 IOPS] < 383.86 us>
Random 4 KiB (Q= 1, T= 1): 91.040 MB/s [ 22760.3 IOPS] < 39.80 us>
Profile: Default
Test: 1 GiB (x5) [Measure: 5 sec / Interval: 5 sec]
Date: 2022-08-24 16:10:33
OS: opensuse-tumbleweed 20220821 [linux 5.19.2-1-default]
Dependencies
Required
- GCC/Clang C++17 (or later)
- CMake >= 3.12
- Extra CMake Modules >= 5.73
- Qt with Widgets and DBus >= 5.9
- PolicyKit Agent
PolkitQt-1
bindings.
- Flexible I/O Tester with libaio >= 3.1
libaio
development package.
External libraries
- SingleApplication prevents launch of multiple application instances.
Installation
Binaries are available on the Releases page.
Install from the Snap Store
sudo snap install kdiskmark
sudo snap connect kdiskmark:removable-media # external storages
Install from the Flathub repository
flatpak install flathub io.github.jonmagon.kdiskmark
Ubuntu based distros
sudo add-apt-repository ppa:jonmagon/kdiskmark
sudo apt update
sudo apt install kdiskmark
Arch based distros
KDiskMark is included in the official extra repo. You can install it like any other package:
sudo pacman -Syu kdiskmark
Development version can be installed from AUR kdiskmark-git
package.
git clone https://aur.archlinux.org/kdiskmark-git.git
cd kdiskmark-git
makepkg -si
Fedora
KDiskMark is included in the official Fedora repo. You can install it like any other package:
sudo dnf install kdiskmark
openSUSE Tumbleweed
sudo zypper install kdiskmark
Building
Building a package using CPack
You can build KDiskMark by using the following commands:
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
cpack -G DEB # Or RPM, ZIP etc.
Building with Qt6
To build KDiskMark with Qt6 instead of the default Qt5, use the USE_QT6
flag during the CMake configuration step:
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D USE_QT6=ON ..
cpack -G DEB # Or RPM, ZIP etc.
Localization
To help with localization you can use Crowdin or translate files in data/translations
with Qt Linguist directly. To add a new language, copy data/translations/kdiskmark.ts
to data/translations/kdiskmark_<ISO 639-1 language code>_<ISO 3166-1 alpha-2 language code>.ts
, translate it, then add the file to the TS_FILES variable in CMakeLists.txt, and create a pull request. It is also possible to add localized Comment and Keywords sections into data/kdiskmark.desktop
and message for PolicyKit authorization into data/dev.jonmagon.kdiskmark.helper.policy
.
Languages currently available:
- Chinese (Simplified)
- Czech
- Dutch
- English (default)
- French
- German
- Hindi
- Hungarian
- Italian
- Japanese
- Polish
- Portuguese (Brazilian)
- Russian
- Slovak
- Spanish (Mexico)
- Swedish
- Turkish
- Ukrainian
TODO
- Text-based user interface
- Performance profiles (mix, peak, real-world)
Special Thanks
- Artem Grinev (agrinev@manjaro.org) for his help with assembling the AppImage package.
Thanks to the package maintainers, translators, and all users for supporting the project.
Credits
Application Icon
Copyright (c) https://www.iconfinder.com/baitisstudio
FlagKit
https://github.com/madebybowtie/FlagKit
If you have any ideas, critics, suggestions or whatever you want to call it, please open an issue.
Top Related Projects
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
Google SafetyNet attestation workarounds for Magisk
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot