Convert Figma logo to code with AI

JonMagon logoKDiskMark

A simple open-source disk benchmark tool for Linux distros

1,133
44
1,133
35

Top Related Projects

20,418

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:

  1. Download the latest version of KDiskMark from the official GitHub repository: https://github.com/JonMagon/KDiskMark/releases
  2. Extract the downloaded ZIP file to a directory of your choice.
  3. Run the KDiskMark.exe file to launch the KDiskMark application.
  4. In the main window, select the storage device you want to test from the dropdown menu.
  5. Adjust the test settings, such as file size, number of threads, and test duration, according to your needs.
  6. Click the "Start" button to begin the disk performance test.
  7. Once the test is complete, the results will be displayed in the main window, showing various performance metrics for your storage device.
  8. 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

20,418

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

KDiskMark

License: GPL v3 GitHub (pre-)release Main

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

External libraries

Installation

Binaries are available on the Releases page.

Install from the Snap Store

Get it 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 Crowdin

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

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.