当前位置: 首页 > news >正文

婚礼策划网站建设网站运营推广选择乐云seo

婚礼策划网站建设,网站运营推广选择乐云seo,深圳好的网站建设公,霸气又聚财的公司名字大全初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


一、共享内存概述

1.1 什么是共享内存

        共享内存是UNIX系统进程间共享信息的最灵活、最高效的方式。
        一般实现为同一块物理内存通过IPC函数映射到不同的进程的地址空间,每个进程对共享内存的修改都直接反映到其它进程。共享内存可以在进程终止后持续存在,只要没有用IPC函数删除或关闭主机,共享内存将一直存在。由于多个进程可以同时修改共享内存,因此还需要使用适当的机制进行同步(例如信号量)。

1.2 使用共享内存的好处

        在大型业务系统中,对于时间和空间的要求可能同时趋于极限,既要求尽可能高的处理速度,又要求不超出给定的内存需求。实际情况可能是时间和空间都逼近于主机极限。
        能够在时间和空间上同时提高性能的手段就是使用共享内存。共享内存是普通内存,访问机制和私有内存相同,因此具有相同的访问效率。共享内存是对进程间共享的,相同的数据只需要在共享内存中存储一份,不需要每个进程一份拷贝,节省了内存空间。共享内存超越进程存在,因此可以一次构造数据然后不断访问,不需要每次都构造,也可以把构造数据的程序和读取数据的程序分开,对于实时系统而言,这是相当关键的特性。

1.3 使用共享内存的难点

        使用共享内存的代价是编程复杂度的增加。使用共享内存所需的技术绝不仅仅是几个IPC函数那么简单。
        怎样保证多进程修改不冲突?使用一把锁还是多把锁?使用读优先还是写优先?
        怎样保证代码版本正确?使用错误格式的程序可能会毁掉数据。
        怎样保证系统可靠?任何一个程序的地址访问错误都可能错误涂改共享内存数据。
        由于共享内存连接入进程的地址是不确定的,因此一个普通指针存储在共享内存是无意义的,任何使用指针的数据类型都不能存储在共享内存,基本上说,只有基本数据类型int、float、char等和它们的数组可以放入共享内存,通常使用的C++类型string、vector、set、map等等都是无法使用的。
        难道需要退回到C时代吗?
        本系统的实践表明,使用一些高级编程技巧可以在共享内存中实现标准的STL容器从而极大地减低客户代码的编程复杂度,而经过仔细规划的安全机制可以显著地提高系统可靠性。
本系统使用了大量深度编程技术,部分技巧即使不是独创的也是很少见的。

二、共享内存数据库

2.1 为什么要开发共享内存数据库

        首先我已经实现了一整套共享内存基础结构。详见专题共享内存、数据结构与算法_初级代码游戏的博客-CSDN博客。

        实现了统一管理的C++基础共享内存容器,包括数组、set集合、字符串压缩存储、LRU队列等,这些全部都是以兼容STL(C++标准模板库)的方式,最大化地利用模版的运行时高效性和STL的功能来解决C++程序员的需要。
        但是这些容器的使用必须由C++代码完成,所有数据结构在程序编译后不可修改,不能在程序运行时增加新的结构,对于系统变动频繁的系统来说,这是很不方便的。
        为此,开发灵活性和功能上接近大型数据库而性能又远高于大型数据库的内存数据库就存在需求。

2.2 几种主要的内存数据库产品

        eXtremeDB,商业软件    并非磁盘数据库的裁剪,而是专门设计的,号称最快、最可靠,并有最全面的接口(包括两种SQL和两种API),多种索引、事件触发、目标日志。

        SolidDB,将基于内存和磁盘的全事务处理数据库引擎、载体级高可用性及强大的数据复制功能紧密地融为一体。

        Altibase,提供极限性能、容错能力和事务管理的方便性,特别是在通信、网上银行、证券交易、实时应用和嵌入式系统领域。

        TimesTen,可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。

        SQLite,开源软件,小型SQL数据库,最著名的用途是作为应用程序的磁盘文件。并发性很差,是库锁(锁定整个数据库文件)。GPL,不允许用于非开源商业软件。

        其他还有H2 database 、Berkeley DB、FastDB、MonetDB等。

        总体而言,商业产品提供了高可靠性和并发性,性能远低于定制的共享内存(作为基础技术的Active共享内存就是一种定制共享内存),TimesTen的“Ten”据说就是能够达到磁盘数据库的十倍的意思,而“十倍”对于定制共享内存来说完全可以忽略不计的。
        开源软件可靠性、并发性都差一些,但一般速度就更快一点。
        这就是完善程度和速度之间的矛盾,每完善一步速度就减低一点。
        自行开发的优势就是可以根据自己的需要来掌握完善程度和性能要求的折衷尺度。

2.3 主要设计目标

速度    远高于文件和数据库(低于现在的C++定制结构)    
空间    估计高于大型数据库(低于现在的C++定制结构)    
实时性    表级备份恢复,意味着实时间歇取决于表的大小    
并发性    库、表、记录三级锁定    
三种数据类型    整数、浮点数、字符串,不支持NULL    
表和索引    无限制,不同表索引名可相同    
表的列    无限制    
索引    必须包含主键PK,非主键可以重复    
创建表    直接定义表结构    
创建索引    通过指定索引列实现    
函数化查询    给定索引的查询,可查询部分关键字,= > < >= <=    
        
文件备份恢复    全表操作,非记录级    外围功能
        
SQL支持    简单sql将在较高版本支持,工作量巨大    高级功能

三、运行环境

        支持Sun、HP、IBM的UNIX小型机上使用,采用主机自带的C++编译器。需要使用STL。支持Linux,在CenOS和Ubuntu上验证过。


(未完待续) 

http://www.hkea.cn/news/774961/

相关文章:

  • php做视频直播网站关键词竞价广告
  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点
  • 表白网站制作在线日照网站优化公司
  • 企业网站建设策划书 前言徐州关键词优化排名
  • 一级a做爰片视频网站全国新闻媒体发稿平台
  • 唐山网站建设哪家专业高德北斗导航
  • wordpress 地址 .html企业网站seo贵不贵