Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Noticable delay before the window showed up #809

Open
yvvki opened this issue Nov 22, 2024 · 2 comments
Open

Noticable delay before the window showed up #809

yvvki opened this issue Nov 22, 2024 · 2 comments

Comments

@yvvki
Copy link

yvvki commented Nov 22, 2024

I have a quite fast NVMe drive and planning to use Rio daily. But unfortunately every time I boot and login to my graphical session, I had a quite annoying delay opening Rio before I can use the terminal.

The other terminal emulator that I have tested include Foot and kitty. While I have no number to compare it against, my personal experience tells me that Foot goes the fastest, Rio is the slowest, while kitty is somewhere in between.

But the actual reason of why I create this issue is that every time I use Rio just after booting, it sometimes have delay of over 2 seconds before showing up the window.

Is there a way to improve Rio start-up time, especially after booting up?

@raphamorim
Copy link
Owner

Hey @yvvki thank you for the issue!

Which backend are you using on Rio? Is the automatic? If yes, I wonder if using Vulkan would speed up

@yvvki
Copy link
Author

yvvki commented Nov 24, 2024

Indeed that switching to Vulkan speed up my system on idle. I use this cute script to help me test the startup time.

import subprocess
import time

def measure_execution_time(command, iterations):
    total_time_ns = 0  # Total time in nanoseconds

    for _ in range(iterations):
        # Record start time
        start_time = time.perf_counter_ns()

        # Execute the command
        subprocess.run(command, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

        # Record end time
        end_time = time.perf_counter_ns()

        # Calculate elapsed time
        elapsed_time_ns = end_time - start_time
        total_time_ns += elapsed_time_ns

    # Calculate average time in milliseconds
    average_time_ms = total_time_ns / iterations / 1_000_000
    return average_time_ms

# Parameters
iterations = 25
command = "rio -e echo READY"

# Measure and print the average execution time
average_time = measure_execution_time(command, iterations)
print(f"Average execution time over {iterations} runs: {average_time:.2f} ms")

I am running on Linux 6.12.0 Zen kernel with 11th Gen Intel i5-1135G7 and this is the result in my machine:

Backend Time
Automatic 203.55 ms
GL 202.13 ms
Vulkan 174.25 ms

I run the script after rebooting, immediately when my graphical session starts and change the print with this:

# Write the results to a file
with open("/tmp/rio-result.txt", "w+") as f:
    f.write(f"Average execution time over {iterations} runs: {average_time:.2f} ms\n")

This is the result with just 1 iteration:

Backend Time
Automatic 3505.27 ms
GL 3511.77 ms
Vulkan 3462.54 ms

Though using Vulkan helps, it still have that 3 second delay in my end.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants