标签: timing

在 WPF 中创建秒表 - 时间精度

我需要在我的应用程序中设置秒表。我尝试使用调度程序计时器来完成此操作,间隔为一毫秒。但是,时钟的运行速度大约需要十秒才能数到一秒。

我认为这是线程问题,但如何解决呢?

c# wpf multithreading timing dispatchertimer

0
推荐指数
1
解决办法
1万
查看次数

快速 C++ 符号函数

在我的代码中,我在循环中多次对 double 进行符号检查,并且该循环通常在执行期间运行数百万次。

我的符号检查是一个非常基本的计算,fabs()所以我认为必须有其他方法可以更快,因为“分割很慢”。我遇到了一个模板函数,copysign()并创建了一个简单的程序来运行速度比较。我已经用下面的代码测试了三种可能的解决方案。

// C++ program to find out execution time of  of functions 
#include <chrono> 
#include <iostream> 
#include <math.h>

using namespace std; 
using namespace std::chrono; 

template<typename Clock>

void printResult(const std::string name, std::chrono::time_point<Clock> start, std::chrono::time_point<Clock> stop, const int iterations)
{
    // Get duration. 
    std::chrono::duration my_duration = duration_cast<nanoseconds>(stop - start); 
    my_duration /= iterations;

    cout << "Time taken by "<< name <<" function: " << my_duration.count() << " ns avg. for " << iterations << " iterations." …
Run Code Online (Sandbox Code Playgroud)

c++ benchmarking timing

0
推荐指数
1
解决办法
106
查看次数

R Shiny - 限制每秒按下操作按钮的次数

我正在 Shiny 中进行一些复杂的计算,用户通过 ActionButton 启动。然而,我担心用户在短时间内多次向按钮发送垃圾邮件,这可能会带来大量不必要的计算。我尝试过使用debounce(),但它仍然记录所有按钮点击。这是一个代表:

library(shiny)

ui <- fluidPage(
  actionButton("start", "Press me")
)

server <- function(input, output, session) {
  new_number <- eventReactive(input$start, {
    print("Button press registered!")
    # sleep to imitate a long calculation
    Sys.sleep(1)
    runif(1, 1, 1000)
  }) %>% debounce(millis = 3000)
  
  observeEvent(new_number(),
               print(new_number()))
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

尝试运行该应用程序并尽可能快地单击。

它显示该按钮被记录为被按下多次,每次都会停止该过程完整的时间。
输出值仅打印一次,而不是单击按钮的次数,我怀疑这可能有用。但我不知道如何注册,例如,每秒最多按下一个按钮。

throttling r timing shiny

0
推荐指数
1
解决办法
37
查看次数

Python字符串比较不会短路?

通常的说法是,在检查密码或哈希等内容时,字符串比较必须在恒定时间内完成,因此建议避免a == b. 但是,我运行以下脚本,结果不支持a==b第一个不同字符上短路的假设。

from time import perf_counter_ns
import random

def timed_cmp(a, b):
    start = perf_counter_ns()
    a == b
    end = perf_counter_ns()
    return end - start

def n_timed_cmp(n, a, b):
    "average time for a==b done n times"
    ts = [timed_cmp(a, b) for _ in range(n)]
    return sum(ts) / len(ts)

def check_cmp_time():
    random.seed(123)
    # generate a random string of n characters
    n = 2 ** 8
    s = "".join([chr(random.randint(ord("a"), ord("z"))) for _ in range(n)])

    # generate a …
Run Code Online (Sandbox Code Playgroud)

python timing

-1
推荐指数
1
解决办法
256
查看次数

标签 统计

timing ×4

benchmarking ×1

c# ×1

c++ ×1

dispatchertimer ×1

multithreading ×1

python ×1

r ×1

shiny ×1

throttling ×1

wpf ×1