社区
C++ 语言
帖子详情
C++高速数据缓存设计方案
dreamlins
2008-03-18 10:42:16
小弟正用c++设计一个数据输入输出的接口,从数据库中取出数据给用户使用,及更新数据库的表记录,现需要一个高速数据缓存区,即先把数据库记录取出,缓存在本地。供用户快速使用,寻求高效解决方案。谢谢!
...全文
1045
31
打赏
收藏
C++高速数据缓存设计方案
小弟正用c++设计一个数据输入输出的接口,从数据库中取出数据给用户使用,及更新数据库的表记录,现需要一个高速数据缓存区,即先把数据库记录取出,缓存在本地。供用户快速使用,寻求高效解决方案。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
那一年我们21
2012-08-03
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
to: Supper_Jerry
hashmap是高效,但查询条件很局限
to: laolaoliu2002
Memorycache是java里面的吧?c++里怎用?
[/Quote] 你做好的能否给我看看 谢谢你了 我的QQ1013453044 麻烦你了
那一年我们21
2012-08-03
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
to: Supper_Jerry
hashmap是高效,但查询条件很局限
to: laolaoliu2002
Memorycache是java里面的吧?c++里怎用?
[/Quote] 你做好的能否给我看看 谢谢你了 我的QQ1013453044 麻烦你了
xkyx_cn
2008-07-16
打赏
举报
回复
数据库记录量?
用户量?
用户身份?
……
supercow
2008-07-16
打赏
举报
回复
应该个有个优化的策略吧.
可以在用户读取数据前根据用户身份判断可能取到的数据,来进行优化. 不过楼主没说这些细节~~
hai040
2008-07-16
打赏
举报
回复
mark
可以考虑用内存数据库
yumei20001
2008-07-16
打赏
举报
回复
首先SQl 语句就得先优化
也可以用个本地库来存放数据
zhengxianglei
2008-07-16
打赏
举报
回复
不是太懂。看看看看~
jianmuyan
2008-07-16
打赏
举报
回复
顶
Vitin
2008-07-16
打赏
举报
回复
做项目建议配置数据库或者使用内存数据库。
如果是做研究,建议自己设计微型的内存数据库:
1、用大块内存存储连续数据记录,使用索引提高查询速度。
2、降低读写真实数据库的次数,批量读取与更新。
3、确定操作接口,根据需求决定设计。
Vitin
2008-07-16
打赏
举报
回复
数据库管理系统一般都有自己的高速缓存。在内存足够的前提下通过合适的配置可以大大提高性能。
另外还有名为“内存数据库”的技术,提供基于内存的整套数据库解决方案。
sandrowjw
2008-07-16
打赏
举报
回复
首先如果对地址重新编码的话,访问就不是问题,但是那样要重载整个内存管理层。
还有我感觉这种问题没有通用方案,最好是分析你的代码,找到内存分配效率上的瓶颈然后加以解决。数据库本身就有缓存机制,但是缓存的作用与否和数据库的设计优劣关系很大,所以与其动脑筋去考虑缓存,不如优化一下数据库设计(如果你用的Access就当我没说)。
逸学堂
2008-07-16
打赏
举报
回复
排出其他问题
你可以看看memcached,很多大型网站都使用它做缓存(如果缓存命中率不能达到90%,最好别用)
http://danga.com/memcached/
另外:lz还是仔细分析一下影响性能的主要因素吧。
Dancing_Sea
2008-03-31
打赏
举报
回复
不要说hashmap没有用
你将你的 查询条件作为key,vector 里面的索引号作为value.
具体还是要看你的查询原则.
艾,还是废贴
Dancing_Sea
2008-03-31
打赏
举报
回复
[Quote=引用 15 楼 taodm 的回复:]
查找规则都没谈,只能说是废贴。
[/Quote]
就是
楼主最好描述清楚你的数据是如何使用的,数据规模,用户查询、提交的频度
1、可以建立索引(跟数据库的索引类似),这样你可以将高速索引放到内存中,其他的放到文件里面
2、建立缓冲池,将读写频度高的放到内存中.
Skt32
2008-03-31
打赏
举报
回复
使用内存文件
michney
2008-03-21
打赏
举报
回复
memorycache,开源的
dreamlins
2008-03-21
打赏
举报
回复
在线等 求方案。。
YJ1973
2008-03-21
打赏
举报
回复
“现在是用vector来保存,不过数据查找的时候速度比较慢,故需求更高效方案。”
“hashmap是高效,但查询条件很局限”
要快速查询就要索引,对一项属性要索引,就要维护至少一个索引表
你想“查询条件不局限”又要“快”,那你就要都索引。
一般的数据库做法都是在key上索引
缓存数据的主要目的是为了减少访问代价,缓存的结果应该与数据库的逻辑结构保持一致。
taodm
2008-03-21
打赏
举报
回复
查找规则都没谈,只能说是废贴。
dreamlins
2008-03-19
打赏
举报
回复
有没有谁有更好的建议呀!!拜托了
加载更多回复(11)
【C/
C++
性能优化】提高
C++
程序的
缓存
命中率以优化性能
在探讨计算机性能优化的旅程中,我们常常被引导去关注算法的复杂度、代码的优化,或是更高效的数据结构。然而,有一个经常被忽视的角色在幕后默默地影响着程序的运行效率——那就是
缓存
(Cache)。正如哲学家亨利·戴维·梭罗在《瓦尔登湖》中所说:“细节是造成美丽的源泉”,在软件开发的世界里,对
缓存
的理解和优化,就是那些决定程序性能优雅与否的细节。
C++
如何设计和实现
缓存
(cache)来减少对后端存储的访问压力
缓存
,简单来说,是一种临时存储机制,用于保存频繁访问的数据或计算结果,以便在后续请求中快速获取,而无需重复访问较慢的后端存储或重新计算。其核心思想是“以空间换时间”,即通过占用一定的存储空间(通常是速度更快的存储介质),来换取更低的访问延迟和更高的系统吞吐量。在计算机系统中,
缓存
无处不在,从硬件层面的CPU
缓存
,到软件层面的数据库查询
缓存
,再到分布式系统中的分布式
缓存
,均体现了这一设计理念。
缓存
的基本工作流程可以概括为:当系统接收到一个请求时,首先检查
缓存
中是否存在所需的数据;
C/
C++
流水线
缓存
以及优化
抄书笔记 《游戏引擎架构》第二版 游戏是软实时系统。软实时系统是指游戏软件必须在限期内完成操作——游戏中最显然的需求是没帧必须在16.6ms(以达到60FPS)或者33.3ms(以达到30FPS)内完成。软的部分是指没有人会因为帧率而死亡(相对医疗和交通系统的硬实时系统,如果不能在有限的时间内完成操作可能导致严重意外)。尽管如此,无需怀疑,游戏需要尽可能的高效运行。 一 并行范式转移 优化软件的性能,就要了解什么使软件变慢。 在早期计算机中,CPU相对较慢,因此程序员在优化代码的过程中,会集中降低任务所花费
C++
指针、
C++
编译、基础数据类型长度、CPU结构、计算机内存、三级
缓存
小结
C++
指针、
C++
编译、基础数据类型长度、CPU结构、计算机内存、三级
缓存
编写
缓存
友好型程序技巧
通过使用数据
缓存
加速程序 译者注:本文原始链接为<Make your programs run faster by better using the data cache>,翻译获得作者同意。本文中的一些策略只对大量数据处理有优化的可能,小量数据很可能带来性能下降。 通过使用数据
缓存
加速程序 开发者时刻面临着如何加速程序,其中最明显的是通过花哨的算法来降低复杂度。比如说将O(n2)O(n^2)O(n2) 复杂度的算法,使用 O(nlogn)O(nlogn)O(nlogn) 替换等等。这是很好
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章