使用php/MySQL的定时事件
我需要一种方法来修改一定时间之后的表中的值.我当前的方法如下: 在表中插入等待期的结束时间 当用户加载页面要求要更改的值的页面时,请检查当前> =结束时间 是否 如果是,请更改值并删除最终时间字段,如果不是,则无需执行 这将是网站上的主要功能,因此效率是关键.考虑到这一点,您可能会看到我的工作方式.每当有人访问需要信息的页面时,都会调用相同的代码. 对改进或更好方法的任何建议都将不胜感激,最好在PHP或Perl中. 回应cron的工作答案: 谢谢,如果可能的话,我想做类似的事情,但是主机限制是问题所在.由于这是应用程序的主要部分,因此不能受到限制. 解决方案 为什么不使用cron在幕后更新此信息?这样,您可以将每个页面上的支票卸载,并实际上可以安排时间安排以满足您的应用程序的要求. 其他解决方案 您的解决方案听起来很合乎逻辑,因为您无法访问Cron.另一种方法可能是将值存储在文件中,下次加载页面进行最后修改(Filemtime(checkfil
0 2023-05-31
编程技术问答社区
测量PHP脚本的时间-使用$_SERVER['REQUEST_TIME']
这是测量脚本的可靠方法: $time = ($_SERVER['REQUEST_TIME_FLOAT'] - $_SERVER['REQUEST_TIME']); 或 $time = (microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']); 应该使用哪一个? 每个人有什么区别? 他们返回非常不同的测量值. 解决方案 $time = ($_SERVER['REQUEST_TIME_FLOAT'] - $_SERVER['REQUEST_TIME']); 这将永远不会为您提供PHP脚本的执行时间.因为两个值都用于存储请求的启动.区别在于,$_SERVER['REQUEST_TIME_FLOAT']更精确,并以微秒精度存储时间值,而$_SERVER['REQUEST_TIME']则以秒为单位. . $time = (microtime(true) - $_SERVER['REQUEST_TIME
0 2023-05-29
编程技术问答社区
如何运行一个长的PHP脚本,并不断通过HTTP向浏览器发送更新?
您如何运行长的PHP脚本并通过HTTP继续向浏览器发送更新? 与输出缓冲有关的事情,但我不知道如何. 解决方案 输出缓冲在正确的方向上进行思考,您开始使用ob_start()开始输出缓冲,就像在发送任何输出之前,在脚本顶部的某个地方的会话(session_start)一样. 然后,您可以使用ob_flush和flush继续冲洗输出.例如,如果您在foreach循环中,并且在每个循环的末尾,您想输出新行并等待1秒钟,则可以做到这一点. ,但也要看set_time_limit,因为否则人们可能会在30秒钟左右的时间内暂停. 另一个快速注意,有些浏览器需要最少数量的输出数,然后才能真正开始显示它.我不确定字节是什么,我认为它是在4000左右的.此外,有些浏览器不会呈现某些元素(例如表),直到它们关闭为止.因此,冲洗也无法在那里工作. 其他解决方案 这看起来像您所追求的: 输出缓冲,PHP一旦准备就绪,将您的脚本输出发送到Web服务器 - 这可能是按线路
0 2023-05-27
编程技术问答社区
随机睡眠可以防止定时攻击吗?
来自 wikipedia 在密码学中,计时攻击是侧渠道攻击 攻击者试图通过分析时间来妥协加密系统 执行加密算法. 实际上,为了防止计时攻击,我正在使用以下功能,从此答案: function timingSafeCompare($safe, $user) { // Prevent issues if string length is 0 $safe .= chr(0); $user .= chr(0); $safeLen = strlen($safe); $userLen = strlen($user); // Set the result to the difference between the lengths $result = $safeLen - $userLen; // Note that we ALWAYS iterate over the user-supplied length
2 2023-05-27
编程技术问答社区
周期计数本身在程序时机上是可靠的吗?
我目前正在尝试开发一个评判系统,该系统不仅衡量时间和内存的使用,还要衡量更深入的信息,例如高速缓存误差等,我认为硬件计数器(使用perf)非常适合. 但对于时间部分, 我想知道是否仅使用周期计数来确定执行速度是否足够可靠? 希望了解这个决定的利弊. 解决方案 因此,您您建议测量 cpu 循环,而不是秒?听起来有些合理. 对于某些很好的微学分,主要是由于CPU频率变化而导致的变化. (并且由于仅计算用户空间周期而引起的延迟,如果您要微构型循环不会进行系统调用.然后可见中断的次要效应,即序列化管道,并可能驱逐您的某些效果来自缓存/TLB的数据.) 但是,内存(也许是L3缓存)保持恒定速度,而CPU频率更改,因此缓存的相对成本会更改:纳米秒中相同的响应时间较少,核心时钟周期较少,因此,排序的Exec可以更轻松地隐藏更多. 和可用的内存带宽相对于核心所能使用的内容更高. 例如. AT 4.3GHz,这是L2缓存中错过但在Skylake-Server上命中的负载可能的总潜伏
12 2023-05-24
编程技术问答社区
如何使用MT模板语言对大块的代码进行计时处理?
通常在开发可移动类型的模板时,我想出了多种产生相同结果的方法,并且很好奇,这更有效.或者,我只是想知道要花多长时间的时间,例如生成搜索结果. 有没有一种简单的方法来使用模板标签记录处理时间或其他计时策略,而无需外部工具? 解决方案 这是我想到的方法,并且已经使用了一段时间.它使用标准可移动类型的模板语言报告了时间到最接近的第二个. 为了安排一块模板代码,创建一个系统或博客级模板模块,称为"计时":
2 2023-05-24
编程技术问答社区
如何让我的Python代码运行得更快?
我正在处理循环多个NetCDF文件(大〜28G)的代码. NETCDF文件在整个域中都有多个4D变量[时间,东西方,南北,高度].目的是循环浏览这些文件,并循环到域中所有这些变量的每个位置,然后将某些变量插入以存储到大数组中.当缺少或不完整的文件时,我会用99.99填充值.现在,我只是通过循环2个每日NETCDF文件来测试,但由于某种原因,它永远需要(约14小时).我不确定是否有一种优化此代码的方法.我认为Python不应该花这么长时间才能完成这项任务,但这可能是Python或我的代码的问题.以下是我的代码,希望它是可读的,并且对如何更快地使此速度的任何建议都非常感谢: #Domain to loop over k_space = np.arange(0,37) j_space = np.arange(80,170) i_space = np.arange(200,307) predictors_wrf=[] names_wrf=[] counter = 0 cdate = s
2 2023-05-24
编程技术问答社区
防止在有时间限制的代码部分进行上下文切换(或测量然后减去未在线程中实际花费的时间)。
我有一个多线程应用程序,在代码的某个部分中,我使用Stopwatch来测量操作的时间: MatchCollection matches = regex.Matches(text); //lazy evaluation Int32 matchCount; //inside this bracket program should not context switch { //start timer MyStopwatch matchDuration = MyStopwatch.StartNew(); //actually evaluate regex matchCount = matches.Count; //adds the time regex took to a list durations.AddDuration(matchDuration.Stop()); } 现在,问题是,如果启动秒表时,程序是否将控件切换到另一个线程,则
2 2023-05-23
编程技术问答社区
处理时间度量的最佳方法?
我的目标是编写一个用于测量方法执行或交易时间的框架,以及处理测量值,即存储,分析等.事务可能包括对外部系统的调用,并同步或异步等待结果. . 关于该主题已经有一些问题,例如 " 我如何为方法的执行时间" " 测量Java方法的执行时间" " 所有答案都归结为花时间的三种方法 System.currentTimeMillis() System.nanoTime() Instant.now()和Duration(自Java 8) 我知道,所有这些都有一些含义 system.currenttimemillis() 此方法的结果取决于平台.在Linux上,您可以获得1毫秒的分辨率,Windows您将获得10ms(单核)〜15ms(多核).因此,可以测量大型运行操作或多次执行短运行操作. system.nanotime() 您获得了高分辨率的时间度量,纳米第二精度(但不一定是纳米级准确性),并且在292年后您会溢出(我可以使用它)
0 2023-05-23
编程技术问答社区
是否有可能获得postgres中的查询历史?
是否可以在Postgres中获得查询历史记录?并且有可能获得每个查询所花费的时间吗?我目前正在尝试确定正在处理的应用程序中的慢速查询. 我正在使用Postgres 8.3.5 解决方案 数据库本身没有历史记录,如果您使用的是PSQL,则可以使用" \ s"来查看您的命令历史记录. 您可以通过设置 log_statement postgresql.conf文件中.您可能想要的是在此领域要知道的另一件方便的事情是,如果您运行psql并将其讲述" \ timing",则将显示此之后的每一个语句.因此,如果您有一个看起来像这样的SQL文件: \timing select 1; 您可以用正确的标志运行它,并查看每个语句与所花费的时间交织在一起.这是结果的样子: $ psql -ef test.sql Timing is on. select 1; ?column? ---------- 1 (1 row) Time: 1.196 ms
4 2023-05-23
编程技术问答社区
System.Diagnostics.Stopwatch类的定时器分辨率是否稳定?
.NET使用System.Diagnostics.Stopwatch类支持高分辨率计时.我知道该类使用的具体分辨率取决于基础硬件,并且可以通过静态属性Stopwatch.Frequency获得. . 此频率似乎与CPU频率有关,Stopwatch读取此值,并将其存储在静态类初始化器/构造函数中.因此,我现在想知道,如果CPU时钟更改,此类是否会报告不正确的时间?例如在更改CPU时钟的系统中,根据系统负载. 解决方案 msdn: *The Frequency value depends on the resolution of the underlying timing mechanism. If the installed hardware and operating system support a high-resolution performance counter, then the Frequency value reflects the frequency
0 2023-05-23
编程技术问答社区
如何在Nvidia Shield上对Android RenderScript代码进行正确计时
我已经在Renderscript中实现了一个小型CNN,并希望在不同的硬件上介绍性能.在我的Nexus 7时,Times很有意义,但是在Nvidia Shield上,它们没有. CNN(LENET)在居住在队列中的9层中实现,计算以顺序进行.每一层是单独定时的. 这是一个示例: conv1 pool1 conv2 pool2 resh1 ip1 relu1 ip2 softmax nexus7 11.177 7.813 13.357 8.367 8.097 2.1 0.326 1.557 2.667 shield 13.219 1.024 1.567 1.081 0.988 14.588 13.323 14.318 40.347 时代的分布与Nexus有关,conv1和Conv2(卷积层)大部分时间.但是在盾牌上,时代的速度超出了2-4层的合理状况,并且似乎在末尾聚集. SoftMax层的工作相对较小,因此40ms太大了.
2 2023-05-23
编程技术问答社区
测量客户端页面加载时间的最佳方法是什么?
我希望监视我们网站的最终用户体验,并将其与已经在服务器端登录的定时信息联系起来.我的假设是,这将要求JavaScript在请求开始(window.onbeforeunload)和加载结束时捕获时间戳记(window.onload).基本上 - " 有更好的方法吗? 我应该期望什么样的绩效惩罚(数量级)? 结果有多好? 解决方案 编辑(2013):尝试 boomerang 相反,就像 @yasei-no-no-umi一样建议.它是积极维护的. - 旧答案 - 我们使用使用和修改非常简单 - 我们编写了自己的服务器端代码(而不是Jiffy的Apache + Perl),并使用了Jiffy的JS. 关于绩效罚款 - 客户端没有一个. JS本身的速度很快,并且可以通过XHR进行页面加载后的XHR报告,这对用户体验没有任何影响.在服务器端,您将获得两倍的要求.如果那是瓶颈,则可以为定时响应设置其他服务器. 其他解决方案 也有 boomerang 来自yaho
0 2023-05-23
编程技术问答社区
Java性能计时库
i long start = System.nanoTime(); methodToBeTimed(); long elapsedTime = System.nanoTime() - start; 有任何良好的时机库可以帮助解决这个问题吗?也将接受本土代码. nb 探查器在这里不是解决方案,因为我想在单元测试中执行一些时间限制,因此我想定时方法编程. . 解决方案 忽略此答案,因为该项目不再是活动 我没有使用过它,但是我遇到了其他解决方案 不是您问题的直接答案,但是我也经常使用此技巧来计时我的代码,然后写下以下简单的蚀 - >带有模板的环绕: long startTime = System.currentTimeMillis(); ${line_selection}${cursor} long totalTime = System.currentTimeMillis() - startTime; System.out.println("Total t
0 2023-05-23
编程技术问答社区
"d = dict() "和 "d = {}"之间的区别
$ python2.7 -m timeit 'd={}' 10000000 loops, best of 3: 0.0331 usec per loop $ python2.7 -m timeit 'd=dict()' 1000000 loops, best of 3: 0.19 usec per loop 为什么要使用一个? 解决方案 我是那些更喜欢单词而不是标点符号的人之一 - 例如,这是我选择Python的原因之一. "没有牙套的生活更好"(一个古老的python座右铭,穿着一件微笑的少年的卡通穿上T恤;-)毕竟(最初打算指的是Braces vs vs vs sublentation,但是,嘿,嘿,嘿嘿,牙套是牙套! - ). "支付"一些纳秒(目的是使用清晰,可读的短词代替括号,括号和whatnots)通常是负担得起的(主要是在内置的名称空间中查找的费用,您支付的价格每当您使用内置类型或功能时,您都可以通过从循环中吊起一些查找来轻度优化它. 所以,我通常是
0 2023-05-23
编程技术问答社区
获取PostgreSQL查询的执行时间
DECLARE @StartTime datetime,@EndTime datetime SELECT @StartTime=GETDATE() select distinct born_on.name from born_on,died_on where (FLOOR(('2012-01-30'-born_on.DOB)/365.25) All(select name from died_on)) SELECT @EndTime=GETDATE() SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in
2 2023-05-23
编程技术问答社区
C语言中的最佳计时方法?
为具有高分辨率和可移植性的代码部分计时的最佳方法是什么? /* Time from here */ ProcessIntenseFunction(); /* to here. */ printf("Time taken %d seconds %d milliseconds", sec, msec); 是否有一个标准库会有跨平台解决方案? 解决方案 我认为这应该有效: #include clock_t start = clock(), diff; ProcessIntenseFunction(); diff = clock() - start; int msec = diff * 1000 / CLOCKS_PER_SEC; printf("Time taken %d seconds %d milliseconds", msec/1000, msec%1000); 其他解决方案 getTimeofday()可能会做您想要的. 如果
0 2023-05-23
编程技术问答社区
在C++中获得一个准确的执行时间(微秒)。
我想在通过C ++实施的程序的微观秒内获得准确的执行时间. 我试图通过clock_t获得执行时间,但这不是准确的. (请注意,微基准测试是 hard .准确的计时器只是短时间区域获得有意义结果所需的一小部分.请参见惯用性能评估方式?对于一些更一般的警告) 解决方案 如果您使用的是C ++ 11或更高版本,则可以使用std::chrono::high_resolution_clock. 一个简单的用例: auto start = std::chrono::high_resolution_clock::now(); ... auto elapsed = std::chrono::high_resolution_clock::now() - start; long long microseconds = std::chrono::duration_cast( elapsed).count();
2 2023-05-23
编程技术问答社区
秒表与使用System.DateTime.Now进行计时事件的对比
我想跟踪代码的性能,因此我使用System.DateTime.Now存储了开始和结束时间.作为执行代码的时间,我将两者之间的区别在于. 我注意到差异似乎并不准确.因此,我尝试使用Stopwatch对象.事实证明这要精确得多. 谁能告诉我为什么Stopwatch使用System.DateTime.Now? 计算开始时间和结束时间之间的差异更准确 顺便说一句,我不是在谈论十分之一.我的差异约为15-20%. 解决方案 按照 msdn /p> 秒表通过计算基础计时器机制中的计时器滴答来测量所经过的时间.如果已安装的硬件和操作系统支持高分辨率性能计数器,则秒表类使用该计数器来测量经过的时间.否则,秒表类使用系统计时器来测量经过的时间.使用频率和高分辨率字段来确定秒表正时实现的精度和分辨率. 它使用的分辨率/精度比DateTime.Now 更高 您也可以查看以下相关链接: emoverition.tickcount.tickcount vs dateT
0 2023-05-23
编程技术问答社区