草庐IT

高效化

全部标签

c++ - 编译时类层次结构的高效配置

这个问题专门针对嵌入式硬实时系统上的C++架构。这意味着大部分数据结构以及确切的程序流在编译时给出,性能很重要并且可以内联大量代码。解决方案最好仅使用C++03,但也欢迎使用C++11输入。我正在寻找既定的设计模式和架构问题的解决方案,在这些架构问题中,相同的代码库应该被重新用于多个密切相关的产品,而某些部分(例如硬件抽象)必然会有所不同。我可能最终会得到一个封装在类中的模块的层次结构,假设有4层,这些模块可能看起来像这样:ProductAProductBToplevel_AToplevel_B(differentforAandB,butwithcommonparts)Middle_g

c# - 高效快速地阅读 Windows 日志

我想要完成的是一个C#应用程序,它将从Windows事件日志中读取日志并将它们存储在其他地方。这必须很快,因为一些将安装它的设备会生成大量日志/秒。到目前为止,我已经尝试了三种方法:本地WMI:效果不佳,需要加载的集合大小导致的错误和异常太多。EventLogReader:我认为这是完美的解决方案,因为它允许您使用XPath表达式查询事件日志。问题是,当您想要获取每个日志的消息内容时(通过调用FormatDescription()),长时间收集会花费太多时间。例如:我可以在0.11秒内读取12k日志,如果我只是浏览它们的话。如果我为每个日志添加一行来存储消息,则需要将近6分钟才能完成完

windows - 命名管道高效异步设计

问题:设计一个高效且非常快速的命名管道客户端服务器框架。当前状态:我已经拥有经过实战验证的生产测试框架。它速度很快,但是它为每个管道连接使用一个线程,如果有很多客户端,线程数可能很快就会很高。我已经使用了可以根据需要扩展的智能线程池(实际上是任务池)。我已经为管道使用了OVERLAPED模式,但随后我使用WaitForSingleObject或WaitForMultipleObjects进行阻塞,这就是为什么我需要在服务器端为每个连接创建一个线程所需的解决方案:客户端就这样很好,但在服务器端,我想为每个客户端请求而不是每个连接使用一个线程。因此,我不会在客户端的整个生命周期(连接/断开

windows - 在写入文件之前预留磁盘空间以提高效率

我注意到我的一个项目在第一次启用日志记录时性能受到了巨大影响。但是当达到日志文件限制并且程序再次开始写入文件的开头时,日志记录速度要快得多(大约快50%)。将日志文件大小设置为数百MB是正常的。大多数下载管理器在开始下载文件之前分配所需大小的虚拟文件。这使得写入更加高效,因为整个block是一次性分配的。当我的程序第一次启动时,以固定大小有效保留磁盘空间的最佳方法是什么? 最佳答案 voidReserveSpace(LONGspaceLow,LONGspaceHigh,HANDLEhFile){DWORDerr=::SetFileP

python celery 的每项工作都高效吗?

我正在用pythonflask制作API服务器。在我的例子中,它是真正的生产级别,所以我在开发服务器时必须小心。经过google搜索,发现celery&redis适合做任务队列。所以我通过pip3install'celery[redis]'安装了celery&redis并定义了任务,然后运行。一切都很好,但我有一些问题。假设有用户模型。也许像这样的用户模型的CRUD。注册用户(带照片)删除用户获取单个用户个人认为celery&redis只需要Registeruser即可。因为上传照片需要很长时间,所以必须用异步处理。删除用户和获取单个用户只需查询数据库并检索它。所以不需要更长的时间。(

python - 如何在多线程程序中更高效地使用redis-py?

我有两个问题。创建一个全局实例并在每个线程中重复使用或在每个线程中创建一个新实例?使用pool=redis.ConnectionPool(host='localhost',port=6379,db=0)r=redis.Redis(connection_pool=pool)或r=redis.StrictRedis(host='localhost',port=6379,db=0)关于ConnectionPool的文档说:您可以选择这样做以实现客户端分片或更好地控制连接的管理方式。但我不明白什么是客户端分享引用.更新如果使用ConnectionPool,下面哪种方式是正确的?答:pool=r

node.js - Redis实例中如何高效保存商品价格图数据

我有包含商品ID及其价格的数据。我想将项目ID作为键,将价格作为值。我能想到的最好的方法是>setitem:12300>setitem:24300等等。但问题是我必须运行一个循环来设置Node中的所有数据。我如何在Redis中使用一种数据结构,它一次性设置所有键值对并更新(替换或插入)所需的键。 最佳答案 您可以使用MSET命令一次设置多个键值对。此外,SET和MSET命令都是更新插入操作。如果键不存在,这些命令将插入键值对,否则更新值。 关于node.js-Redis实例中如何高效保存

redis - Redis 流水线何时变得更高效?

我想知道,流水线什么时候变得更有效率?例如。如果我必须查询服务器一次,管道的效率将低于仅使用redis实例。如果我必须查询服务器两次,例如检查某些东西是否存在,如果存在,捕获它,管道是否更有效或正在使用redis实例?如果我必须查询某事三次......等等流水线什么时候变得比使用redis实例更高效?~谢谢 最佳答案 如果只操作一次,也是一样。类似流水线的批处理机制。如果你有三个命令以正常方式执行,客户端需要发送三个tcp数据包并接收三个tcp数据包(每个命令需要发送一个并接收一个);但是当使用流水线时,客户端将3个命令打包到服务器

php - 高效设计和管理用户设置模块

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我不知道,是否已经有人问过此类问题。其实我不知道要搜索什么。问的地方对吗?举个例子,我一直想知道像Facebook这样的社交媒体巨头是如何管理他们的用户设置模块的……数据库设计是怎样的,他们是如何设法隐藏用户更新的friend的时间线,如果他选择不在那个特定的friend时间线上显示他的更新。我的意思是,如果我在那里编程,那么我会在一个数组中加载所有设置值,并且会有许多条件语句来检查每个用户设置和相应的打

mysql - 如何高效设计多列表应用的数据库

对于冗长,我深表歉意,但我正在尝试为我正在处理的示例应用程序设计一个设计。下面我解释了一个Example案例,示例案例的DesiredQueries,以及我的DBdesign我正在寻找有关如何改进我当前设计的建议,这将使我能够回答我在示例部分中提出的问题。示例:场景:John创建了数学和科学两个主题在数学中添加微积分和代数,在科学中添加物理James创建了数学和音乐两个主题将项目预计算添加到数学中,将摇滚添加到音乐中Lisa创建了两个主题Math和CompSci将项目线性代数添加到数学,将Java添加到CompSciJohn与James分享了数学主题中的项目微积分James接受元素Ja