我继承了一个运行在EC2实例上的Perl脚本,它基本上会抓取一堆用于数据的URL(也称为刮取)。调用此脚本的方式是通过一个shell脚本来分叉这些perl脚本中的多个。可能有数百个这样的Perl脚本在任何给定的点上运行,这取决于抓取过程。
每个Perl脚本都这样做:
## create a temporary hash to hold everything ##
my %products = ();
正如你可以想象的那样,当更多的产品在这个过程中被刮掉时,这个数组就会增长。
我的问题是:当perl试图将下一个产品添加到“product”数组而没有可用内存时,会发生什么情况?它是简单的等待还是死
我正在编写一个程序来更好地理解ncurses,当我通过valgrind推动它时,它会输出许多与ncurses命令相关的泄漏信息。但是,我只使用stdscr,并在main()的末尾调用endwin()。我通过使用menu.h设置了用户选项,最后使用了free_item和free_menu:
menuChoice(WINDOW* scr, std::vector<std::string> *choices,
std::string desc)
{
//create the menu and the item pointer vector
MENU* my_men
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b8bc26 in std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) where
#0 0x00007ffff7b8bc26 in std::basic_filebuf<char, std::char_traits<char&