gpt4 book ai didi

mysql - Perl 函数 "waits"在返回 1 到 main 函数之前

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:48 25 4
gpt4 key购买 nike

我有一个 Perl 脚本,它调用几个函数,这些函数从主函数执行 MySQL 数据库任务。然而,整个脚本太慢了,通过打印日志消息,我调查了它看起来好像只是在“等待”,然后才将控制权交还给主函数。

通过查看 MySQL 的进程列表,我看到一个带有 NULL Info 的 Sleep 进程正在计数 - 直到它正在做某事,Perl 函数才会返回到主函数,尽管 Perl 脚本本身已经执行了它的命令,一切都顺利完成。

示例:

use IO::Handle;
STDERR->autoflush(1);
STDOUT->autoflush(1);

sub SomeFunction{
// writing into MySQL database
print localtime()."log2";
return 1;
}

print localtime()."log1";
&SomeFunction();
print localtime()."log3";

延迟在log2log3之间,直到此时,MySQL的进程列表中才有一个Sleep进程。

这是什么原因造成的,我该如何提高这个脚本的性能?

最佳答案

Perl 不会在范围退出时等待任何事情。但是退出范围可能会导致执行任意代码。例如,退出作用域会导致对象变为未引用和销毁状态,这将涉及调用它们的析构函数。有other means也是。

关于mysql - Perl 函数 "waits"在返回 1 到 main 函数之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20164780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com