草庐IT

timed_wait

全部标签

linux - Linux 中 "time"命令的更准确等价物,关于 sys- 和用户时间?

我处于以下情况:我想确定一小段(PHP和C++)代码的系统时间和用户时间。显然,我可以在Linux中使用“time”二进制文件,但考虑到这些片段运行得如此之快,“time”的正常(甚至冗长)输出无法满足我的目的。“时间”的精度达到毫秒,而我需要微秒。甚至更好:纳秒。谁能告诉我一款可以为我做这件事的软件?我找到了walltime的东西,但我感兴趣的是sys-和usertime。提前致谢!顺便说一句:我正在运行Ubuntu10.1064位 最佳答案 没有任何方法可以为您提供与time命令报告的sys或usertime等效的更精确的值。t

c++ - eventfd_read/write 与 sem_wait/post

在Linux上,在C/C++程序中,如果我不关心我的eventfd是否被用于“select”,那么使用eventfd_read/write(带有EFD_SEMAPHORE标志)还是sem_wait/post更好?是否存在任何性能、可靠性和可移植性问题?由于我的程序使用了一些其他的eventfd对象(带有“select”),我认为使用eventfd比使用sem_wait/post更一致。 最佳答案 sem_wait/sem_post完全是用户空间,除非sem_waitblock或sem_post发布到具有服务员。即使那样,它们执行的系

c - 为什么 wait4() 被 waitpid() 取代

我正在浏览系统调用的文档wait4()在它的手册页中写着Thesefunctionsareobsolete;usewaitpid(2)orwaitid(2)innewprograms.因此,我查看了waitpid()的文档我看到两者之间存在差异。waitpid()与wait4()做同样的事情,但是wait4(),根据手册页,additionallyreturnresourceusageinformationaboutthechildinthestructurepointedtobyrusage.两个系统调用定义如下pid_twait4(pid_tpid,int*status,intop

c++ - LeakSanitizer : get run time leak reports?

我继承了一些遗留代码,似乎某处有内存泄漏。我的第一直觉是用编译-faddress=sanitize-fno-omit-frame-pointer让AddressSanitizer的工具系列帮我找到漏洞。然而,我非常失望。我希望出现某种运行时错误消息(类似于地址清理程序在您不应该读取或写入内存时的错误)。在程序成功完成之前,泄漏sanitizer似乎不会进行任何泄漏检查分析。我的问题是我继承的代码有多个线程,它并不是为了将所有线程都加入到软着陆准备中而设计的。我用一个简单的例子简化了我的问题:#include#include#includeboolexit_thread=false;vo

linux - time -v 的 "file system outputs"是什么意思?

将Linux的“time”命令与dd结合使用时,“文件系统输出”的计数是多少?它不等于dd'count'(大概是调用fwrite的次数?),也不等于4096字节页面的输出大小(在本例中应为1024000)。一个例子:>/usr/bin/time-vddif=/dev/zeroof=/tmp/dd.testbs=4Mcount=10001000+0recordsin1000+0recordsout4194304000bytes(4.2GB)copied,4.94305s,849MB/sCommandbeingtimed:"ddif=/dev/zeroof=/tmp/dd.testbs=4

linux - Haproxy 中大量的 TIME_WAIT

我们将haproxy1.3.26托管在配备2.13GHzIntelXeon处理器的CentOS5.9机器上,该处理器充当众多服务的http和tcp负载均衡器,峰值吞吐量约为2000个请求/秒。它已经运行了2年,但流量和服务数量都在逐渐增加。我们观察到,即使在重新加载后,旧的haproxy进程仍然存在。在进一步调查中,我们发现旧进程有许多处于TIME_WAIT状态的连接。我们还看到netstat和lsof花费了很长时间。关于引用http://agiletesting.blogspot.in/2013/07/the-mystery-of-stale-haproxy-processes.ht

linux - 定时任务 : Monitor time it takes for jobs to finish

我正在做一个研究项目,需要我在UbuntuLinux系统上监控cron作业。我已经收集了有关作业任务的数据以及它们何时开始,我只是不知道有什么方法可以监控它们完成运行需要多长时间。我可以计算完成任务减去开始任务的时间withsomethinglikethis但这需要在每个cron作业的Shell脚本上执行此操作。无论如何这都不一定很困难,但cron不会以某种方式记录它似乎有点愚蠢,所以我试图找到一种更简单的方法:Ptl;dr计算出cron作业从开始到结束所花费的时间 最佳答案 您可以将time放在您的crontab前面,如果您收到有

c++ - 使用epoll_wait时如何正确读取数据

我正在尝试将使用IOCP的现有WindowsC++代码移植到Linux。决定使用epoll_wait来实现高并发后,我已经面临着何时尝试处理接收到的数据的理论问题。假设有两个线程调用epoll_wait,并且接收到两条相应的消息,这样Linux就会解除对第一个线程的阻塞,并很快解除对第二个线程的阻塞。示例:Thread1blocksonepoll_waitThread2blocksonepoll_waitClientsendsachunkofdata1Thread1deblocksfromepoll_wait,performsrecvandtriestoprocessdataClien

c++ - sem_post(sem_t * sem) 和 sem_wait(sem_t * sem) 周围是否存在完整的内存屏障?

在linux代码中,我记得听说mutex_lock()周围有一个完整的内存屏障。我想确定它是否也在sem_xxx附近。 最佳答案 权威答案在这里:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_11Applicationsshallensurethataccesstoanymemorylocationbymorethanonethreadofcontrol(threadsorprocesses)isrestrictedsuc

c - Linux fork() 和 wait()

我有一个难闻的问题:(我有这个代码:intmain(){pid_tchild,parent;intstatus=0;inti;printf("parent=%d\n",getpid());for(i=1;i0){printf("Exit=%d,child=%d\n",status/256,parent);}}输出类似于:1,213202,21321Exit=0,child=213213,21322Exit=0,child=213224,21323Exit=0,child=213235,21324Exit=0,child=21324而且我认为wait(0)不是等待所有子进程,而是只等待第