草庐IT

pool_name

全部标签

Golang中Sync.Pool详解及使用方法

什么是sync.Pool?sync.Pool是用来保存可以被重复使用的临时对象,以便在以后的同类操作中可以重复使用,从而避免了反复创建和销毁临时对象带来的消耗以及对GC造成的压力。常用池化技术来提高程序的性能,例如连接池、线程池等。sync.Pool是并发安全的,可以在多个goroutine中并发调用sync.Pool存取对象。在Golang的很多标准库和很多知名的开源库中,都可以看到大量使用sync.Pool的场景。例如encoding/json包中的Valid方法使用sync.Pool创建scanner对象,Gin框架使用sync.Pool来复用每个请求都会创建的gin.Context对象

c++ - boost asio : different thread pool for different tasks

网络上有很多关于创建简单线程池的示例,例如Sample1和Sample2虽然我想要实现的是为不同的任务提供一个单独的线程池。例如,应用程序可能有一个线程池用于处理传入的tcp连接(我们称之为网络池),而另一个线程池用于与数据库(数据库池)对话。这些传入的tcp请求可能需要来自数据库的信息。在这种情况下,它需要请求数据库池中的那些线程执行查询,并异步返回结果。是否有使用boost::asio的推荐方法?每个池都有一个io_service实例吗?这些线程应该如何相互通信(使用boost)?我明白要解释所有这些,代码不会那么短和琐碎,但如果可能的话,一些伪代码将不胜感激。谢谢!

c++ - boost POOL 使用率 - 单例

我已经开始使用boost池作为boost/pool/singleton_pool.hpp中定义的单例,因为我需要重复分配许多相同大小的结构。性能boost非常显着,因为我之前使用的是malloc。我分配的对象由生产者线程放入列表中,消费者线程从另一端取出这些对象并释放这些对象。但是当我释放对象时,任务管理器中进程的内存使用量永远不会减少。我猜这是因为池库预分配了一定数量的内存?此外,当生产者的数据速率增加时,总内存使用量似乎以block为单位增加~10k,但即使在为池中的对象调用free之后也不会减少。我想定期做一些内务处理以释放内存块以减少进程的整体内存使用量。这可能吗?我不能使用p

c++ - 错误 : no type named ‘value_type’ in ‘class

我收到以下编译器错误:(graph_algorithms.h:59:111:error:notypenamed‘value_type’in‘classGraph::graph_algorithms::vertex_comparer’)这是什么意思?下一行给了我一大堆编译器错误std::priority_queue::vertex,typenameGraph::graph_algorithms::vertex_comparer>pri_que;#ifndefGRAPH_ALGORIUHMS_H_#defineGRAPH_ALGORIUHMS_H_#include#include"grap

c++ - C++ eclipse 调试器出现以下错误。 'Launching program name' 遇到...启动命令 : gdb --version 时出错

我一直在解决调试器问题,但现在它变得太烦人了。我正在处理更复杂的程序,如果我不能调试我的程序,我就无处可去。有没有其他人能够在eclipse中解决这个问题?它适用于java,但不适用于我来自minGW的C++插件C++eclipse调试器出现以下错误。“启动程序名称”遇到问题。启动命令时出错:gdb--version 最佳答案 假设您使用的是Windows并安装了MinGW,您只需在MinGWbin文件夹中找到gdb可执行文件。这可以在Eclipse的“调试器”配置中的“主”选项卡上完成:

c++ - 您如何确定由 'std::map' 创建的用于 'boost::pool_allocator' 的节点的大小(以跨平台方式)?

更新根据评论、回答和其他研究,我得出的结论是set之间通常没有区别。和一个map在节点开销方面。我接下来的问题是:Howdoyoudeterminenodeoverheadforconvenientuseofboost::pool_allocatorasacustomallocator?并且,进一步的更新:节点开销可能永远不会超过4个指针的大小,因此只需清除sizeof(T)的boost池。,sizeof(T)+sizeof(int),sizeof(T)+2*sizeof(int),sizeof(T)+3*sizeof(int)和sizeof(T)+4*sizeof(int)(或int

c++ - 使用 boost singleton_pool 的自定义分配比默认慢

我为MyOrder类编写了自定义运算符new和运算符delete。我正在使用boost::singleton池分配内存。这是测试性能的程序,#include#include#include#include#includeclassMyOrder{std::vectorv1_;std::vectorv2_;std::strings1_;std::strings2_;public:MyOrder(std::strings1,std::strings2):s1_(s1),s2_(s2){}~MyOrder(){}staticvoid*operatornew(size_tsize);stati

c++ - boost 日志 : Support file name and line number

我试图让我的团队远离log4cxx并尝试使用Boost.Logv2。我们目前的log4cxxpattern很简单:log4cxx::helpers::Propertiesprop;prop.setProperty("log4j.rootLogger","DEBUG,A1");prop.setProperty("log4j.appender.A1","org.apache.log4j.ConsoleAppender");prop.setProperty("log4j.appender.A1.layout","org.apache.log4j.PatternLayout");prop.se

objective-c - "Failed to unarchive element named UITableViewController"

我一直在按照“构建你的第二个iOS应用程序”教程一步一步进行操作,在教程promise所有错误都会消失之后我遇到了这个错误,但错误直到其他错误都已更正,我尝试编译它。错误:Thedocument"MainStoryboard_iPhone.storyboard"couldnotbeopened.Failedtounarchiveelementnamed"UITableViewController".这是tutorial的链接.这是我的XML格式的Storyboard我对objective-c和Xcode完全陌生,所以我不确定自己做错了什么,甚至不知道从哪里开始出现这样的错误。如果有人知

ios - IPCAUClient : bundle display name is nil

当我在iOS9应用程序中运行以下命令时:AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)然后在命令行上显示以下消息:ERROR:126:IPCAUClient:bundledisplaynameisnil有什么建议吗? 最佳答案 刚发现,我的Appsinfo.plist文件中的CFBundleDisplayName条目丢失了。添加这个修复了错误。 关于ios-IPCAUClient:bu