草庐IT

shared_mem

全部标签

c++ - 用于动态重新加载/usr/share/zoneinfo 数据库的库/代码?

由于系统/usr/share/zoneinfo数据库更新相当频繁,我希望能够在运行时间很长的C++程序中动态加载(并重新加载)。现在我知道标准库将使用这个数据库,但我怀疑它是否提供动态重新加载(或者至少我无法通过Google找到任何关于它的信息。)是否有任何C或C++库或代码可用于执行此操作? 最佳答案 我是个傻子。提供zoneinfo数据库的IANA还提供alibrary与它一起工作。有趣的是,我通过阅读postgresql源代码发现了这一点。我不确定这是否足够,但它是公共(public)领域许可的,所以至少我可以将它拉入我的代码

php - --enable-phar=shared 我必须重新编译 PHP 才能安装 Composer 吗?

我正在尝试在DreamHostVPS上安装ComposerLinux3.1.9-vs2.3.2.5vs2.3.2.5+WebPHP版本5.4.11CLI版本PHP5.4.11(cli)phpinfo()输出只有一个phar引用,它说--enable-phar=shared但是当我尝试以下操作时,输出说我需要启用phar。sudo-umyusercurl-sShttps://getcomposer.org/installer|/usr/local/php54/bin/php#!/usr/bin/envphpSomesettingsonyourmachinemakeComposerunab

linux - 推荐哪一个: using static lib vs dynamic lib (shared object)

我正在使用Linux中的应用程序。它同时支持静态和动态(.so)版本从性能的角度来看,用户应该使用哪个版本?该应用程序执行需要数小时CPU时间的计算任务。使用一个库优于另一个库的任何其他优势?谢谢 最佳答案 从纯性能的角度来看:共享对象被编译为PIC(位置无关代码),理论上在某些架构(包括x86)上可能比普通代码效率稍低。但是,我认为这不会产生任何真正的影响。从任何其他点使用共享对象,它比静态库有太多的优点,它只是更好的选择。 关于linux-推荐哪一个:usingstaticlibvs

c - 打开/dev/mem - 不允许操作

我正在使用ubuntu。我正在尝试打开/dev/mem,但我得到了permissiondeniedint32_topen_memdev(){int32_tfd;fd=open("/dev/mem",O_RDONLY);if(fd这段代码总是打印"Failedtoopen/dev/mem:Operationnotpermitted"我在SO上搜索过这个access-permissions-of-dev-memaccessing-mmaped-dev-mem这些问题似乎讨论了无法访问超过1MB的问题,但我的问题是我一次都无法打开。其他详细信息(如果有帮助):1)我检查了我的配置,CONFI

php - is_writable 为 NFS-share 返回 false,即使它对用户 www-data 是可写的

我有一个相对文件夹“files/crm-upload”,我想在其中上传文件。我的代码会检查is_writable()是否为真,并且只有在这种情况下才会继续。该文件夹作为NFS共享挂载,rw和sec=sys。我写了一个测试脚本,我也在apache上执行它来查看访问权限,结果是:files/crm-upload/php_touchmodificationtimehasbeenchangedtopresenttimeMyeffectiveUIDis33butmyUIDisreally33files/crm-upload/isownedby33andhaspermissions40777is_

ruby - 删除 rvm 后 vim 不加载 (libruby.so.1.8 : cannot open shared object file)

我最近删除了rvm并重新安装了它,效果很好。但是现在,当我尝试启动vim或gvim时,我收到以下错误消息:vim:errorwhileloadingsharedlibraries:libruby.so.1.8:cannotopensharedobjectfile:Nosuchfileordirectory"Google在这里对我帮助不大。我在Ubuntu11.10上。有谁知道这个问题,或者谁能给我一个提示,我应该在哪里详细查看? 最佳答案 在我的Ubuntu系统上,vim是针对Ruby编译的,链接器/加载器ld.so(8)找到lib

c++ - C、C++ : Shared libraries: Are single functions or complete libraries loaded into memory?

在静态编译中,只有程序实际需要的库函数才会链接到程序。共享库怎么样?动态链接器是只将程序实际需要的函数加载到内存中,还是始终加载整个共享库?如果它是函数,我如何获得程序的实际大小,包括它在运行时加载的函数?谢谢!奥利弗 最佳答案 通过静态编译,只有程序实际需要的库函数才会链接到程序。共享库怎么样?共享库由程序以符号方式引用,也就是说,程序将通过名称识别它所链接的共享库。动态链接器是仅将程序实际需要的函数加载到内存中,还是始终加载整个共享库?程序将引用共享库中的特定入口点和数据对象。共享库将作为单个大对象映射到内存中,但内核只会调入实

linux - 共享内存中的 Shared_dirty 与 Private_dirty

我有一个使用共享内存的多进程应用程序。我正在尝试检测我的应用程序中的内存泄漏。我在/proc/$pid/smap中找到了这个2b51cd2b2000-2b53b8aa4000rw-s0000000000:0917151225/dev/zero(deleted)Size:8052680kBRss:31608kBShared_Clean:1524kBShared_Dirty:25736kBPrivate_Clean:0kBPrivate_Dirty:4348kBSwap:0kBPss:6945kB这是我分配的共享内存。(大小告诉这是我用mmap分配的)在内存本身共享的上下文中,我试图理解共

linux - 在 linux 上,我应该如何根据/proc/mem 中的信息计算空闲内存量?

/proc/mem中有很多字段:我知道我不能只取“MemFree”,因为实际上缓存了很多内存。那么问题来了,如何计算可用内存量?假设:系统配置没有交换空间。我对“空闲内存”的定义是当它达到零时malloc开始失败。 最佳答案 如果如您所说,系统配置为没有交换空间,则可以通过添加/proc/meminfo中的“MemFree”、“Buffers”和“Cached”值来计算可用内存量。这正是命令“free-m”在“-/+buffers/cache”行的“free”下显示的内容。在Python中,我将按如下方式实现:withopen('/

linux - Varnish 无法以 : failed to map segment from shared object: Operation not permitted 开头

我在CentOS6.7上从epelrepo安装了varnish,它无法启动并出现以下错误:CompiledVCLprogramfailedtoload:./vcl.1P9zoqAU.so:failedtomapsegmentfromsharedobject:OperationnotpermittedVCLcompilationfailed如果我对varnishd二进制文件进行strace,我会在最后得到以下几行chdir("/var/lib/varnish/myserver.foo.bar")=0open("./vcl.1P9zoqAU.c",O_RDWR|O_CREAT|O_EXCL