<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangjunhe的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangjunhe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangjunhe]]></copyright><item><title><![CDATA[Windows系统内存计数器理解解析]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/128452645</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/128452645</guid><author>wangjunhe</author><pubDate>Tue, 27 Dec 2022 16:18:03 +0800</pubDate><description><![CDATA[是用页数计算的，以便在不用做转换的情况下就可以同其他页计数如: Memory\\Page Faults/sec 做比较，这个值包括为满足错误而在文件系统缓存(通常由应用程序请求)的非缓存映射内存文件中检索的页。内存管理器不会 将该错误报告为访问违例，而是在物理内存中分配一个新的读/写页面，并将原始页面中的内容拷贝到新的页面中，同时更新该进程对应的页面映射信息，使之指向 新的页面位置，然后解除异常，从而继续进行刚才的写指令。这是用来衡量在不使用时可以写入到磁盘上的操作系统使用的物理内存的数量。]]></description><category></category></item><item><title><![CDATA[Sqlite大批量导入数据提高效率的几种方式]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/117767941</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/117767941</guid><author>wangjunhe</author><pubDate>Thu, 10 Jun 2021 09:30:45 +0800</pubDate><description><![CDATA[前言


SQLite数据库由于其简单、灵活、轻量、开源，已经被越来越多的被应用到中小型应用中。甚至有人说，SQLite完全可以用来取代c语言中的文件读写操作。因此我最近编写有关遥感数据处理的程序的时候，也将SQLite引入进来，以提高数据的结构化程度，并且提高大数据的处理能力（SQLite最高支持2PB大小的数据）。但是最开始，我发现，直接使用SQL语句的插入效率简直低的令人发指的。后来不断查文档、查资料，才发现了一条快速的“数据插入”之路。本文就以插入数据为例，整合网上和资料书中的各种提高SQLite效]]></description><category></category></item><item><title><![CDATA[sqlite3：锁机制、stmt加速、wal日志模式、多进程并发、写互斥]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/117744482</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/117744482</guid><author>wangjunhe</author><pubDate>Wed, 09 Jun 2021 15:33:05 +0800</pubDate><description><![CDATA[最近需要做sqlite的并发优化，会有一些多主机多进程的操作失败问题，所以学习一下，顺便为了翻阅，做一个笔记收集。



未完成。。。。。。。。。。。。。。。。。。。

to be continued

目前只对我某时刻最关注的点做笔记，默认简单的就跳过了。

工作和时间原因，顺序有些乱，可能随时遇到问题就插进去了。



锁机制与事务类型
https://www.cnblogs.com/lijingcheng/p/4454884.html

sqlite3源代码注释说明

等等等。。。

关键点

读..]]></description><category></category></item><item><title><![CDATA[Pager模块之事务锁的实现]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/117744434</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/117744434</guid><author>wangjunhe</author><pubDate>Wed, 09 Jun 2021 15:30:55 +0800</pubDate><description><![CDATA[如果对SQLite事务的概念完全陌生，建议先阅读以下这篇文章来熟悉相关基础概念。

SQLite的原子提交原理

https://blog.youkuaiyun.com/javensun/article/details/8515690



SQLite支持多路并发的事务处理，这就需要一种机制来隔离一个事务相对于其他事务的影响。为了保证事务的隔离性，那么在并发的环境下，对于写数据库的操作就要串行化。而事务锁就是用来解决这个问题的，使得多个进程同时读写一个数据库时保持独立，不会相互影响。

事务锁主要借助于操作系统的..]]></description><category></category></item><item><title><![CDATA[SQLite封锁机制]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/117744360</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/117744360</guid><author>wangjunhe</author><pubDate>Wed, 09 Jun 2021 15:29:07 +0800</pubDate><description><![CDATA[概述

  SQLite虽然是一个轻量的嵌入式数据库，但这并不影响它支持事务。所谓支持事务，即需要在并发环境下，保持事务的ACID特性。事务的原子性，隔离性都需要通过并发控制来保证。那么Sqlite的并发控制是怎样的，如何实现，在这里跟大家分享下我的理解。

  SQLite是一个文件数据库，所有的数据都在一个db文件中，对于wal模式，还包含wal索引文件和wal日志文件。SQlite支持库级并发，即允许多个读事务同时运行，同一时刻最多只有一个写事务，读写冲突，相对于传统的DBMS支持表级，行...]]></description><category></category></item><item><title><![CDATA[SQLite的原子提交原理]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/117713363</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/117713363</guid><author>wangjunhe</author><pubDate>Tue, 08 Jun 2021 18:56:52 +0800</pubDate><description><![CDATA[2013/1/18版本：

之前的一个Android项目用到SQLite，有一个数据库损坏的问题一直搞不明白，老大推荐了一下这篇文章，看了之后明白不少。原英文地址中的一些内容有更新，我也就捡其中的一些自己看着比较吃力段落重新翻译了一下，顺便补充了一些英文版更新内容，很多地方并没有完全吃透，只是看了个大概，有些地方或许翻译有差错，欢迎指正。

距离原译者的时间近五年，2013/1/18凌晨于杭州，裹着被子，很冻手，敲键盘都不准，难免会有错别字。向原译者致敬！



以下是原译者的摘要：

摘要：



本..]]></description><category></category></item><item><title><![CDATA[理解C++中的头文件和源文件的作用]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/112617673</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/112617673</guid><author>wangjunhe</author><pubDate>Thu, 14 Jan 2021 16:30:37 +0800</pubDate><description><![CDATA[一、C++编译模式
通常，在一个C++程序中，只包含两类文件——.cpp文件和.h文件。其中，.cpp文件被称作C++源文件，里面放的都是C++的源代码；而.h文件则被称作C++头文件，里面放的也是C++的源代码。
C+ +语言支持“分别编译”（separatecompilation）。也就是说，一个程序所有的内容，可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的，在编译（compile）时不需要与其他文件互通，只需要在编译成目标文件后再与其他的目标文件做一次链接（link]]></description><category></category></item><item><title><![CDATA[数字反转（Reverse Integer）]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/102676495</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/102676495</guid><author>wangjunhe</author><pubDate>Tue, 22 Oct 2019 09:32:57 +0800</pubDate><description><![CDATA[题目：

Reverse digits of an integer.

Example1:x = 123, return 321
Example2:x = -123, return -321

click to show spoilers.

Have you thought about this?
Here are some good questions to ask before codi...]]></description><category></category></item><item><title><![CDATA[算法复杂度]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/102395953</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/102395953</guid><author>wangjunhe</author><pubDate>Tue, 08 Oct 2019 16:57:51 +0800</pubDate><description><![CDATA[Common Data Structure Operations

Data Structure
			Time Complexity
			Space Complexity
		
			Average
			Worst
			Worst
		
			Access
			Search
			Insertion
			Deletion
			Access
			Search
			Inse...]]></description><category></category></item><item><title><![CDATA[红黑树]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/102388031</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/102388031</guid><author>wangjunhe</author><pubDate>Tue, 08 Oct 2019 15:07:30 +0800</pubDate><description><![CDATA[一、在理解红黑树之前，先看一些二叉查找树

二叉查找树特性：左字数上所有的节点的值都小于或等于他的根节点上的值

              右子树上所有节点的值均大于或等于他的根节点的值

              左、右子树也跟别为平衡二叉树

   举个二叉树的例子：

     

   可以看到如果要...]]></description><category></category></item><item><title><![CDATA[test SVG]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/83141910</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/83141910</guid><author>wangjunhe</author><pubDate>Thu, 18 Oct 2018 10:06:59 +0800</pubDate><description><![CDATA[
&amp;lt;svg width=&quot;580&quot; height=&quot;400&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;
 &amp;lt;!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ --&amp;gt;
 &amp;lt;defs&amp;gt;
  &amp;lt;filter height=&quot;20]]></description><category></category></item><item><title><![CDATA[白话UNIX GNU/Linux GPL 那些事]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/83110366</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/83110366</guid><author>wangjunhe</author><pubDate>Wed, 17 Oct 2018 17:25:31 +0800</pubDate><description><![CDATA[前言

说起来UNIX 或者Linux 多数人都多少会知道点，如果是IT行业可能了解的更多。但是真正说起他们的起源我相信没有太多人能说的清楚，今天咱们就聊聊这几位看着眼熟又不认识的几位仁兄。

UNIX

先说UNIX吧，话说还是1970年的时候，在AT&amp;amp;T的贝尔实验室有个哥们叫Ken Thompson就是下面这位仁兄（后人称之为UNIX之父）



把自己写的一个叫“星际旅行”的程序移植...]]></description><category></category></item><item><title><![CDATA[selinux是什么]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/82992740</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/82992740</guid><author>wangjunhe</author><pubDate>Wed, 10 Oct 2018 10:25:06 +0800</pubDate><description><![CDATA[目录

一、前言

二、SELinux 的作用及权限管理机制

2.1 SELinux 的作用

2.2 DAC

2.3 MAC

2.4 DAC 和 MAC 的对比

三、SELinux 基本概念

3.1 主体（Subject）

3.2 对象（Object）

3.3 政策和规则（Policy &amp;amp; Rule）

3.4 安全上下文（Security Context）

3.5 SE...]]></description><category></category></item><item><title><![CDATA[windows7挂载linux下共享目录 nfs]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/82971417</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/82971417</guid><author>wangjunhe</author><pubDate>Wed, 10 Oct 2018 09:58:58 +0800</pubDate><description><![CDATA[代码在LINUX， VI编辑太慢，想挂载目录到windows下编辑


	 Linux 安装NFS
	

yum  install  nfs-utils  rpcbind

chkconfig rpcbind on #chkconfig：更新和查询各运行级别的系统服务

chkconfig nfs on

service rpcbind start//如果失败多启动几次

service nfs ...]]></description><category></category></item><item><title><![CDATA[SQL Server 内存管理]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/18668181</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/18668181</guid><author>wangjunhe</author><pubDate>Wed, 22 Jan 2014 17:54:09 +0800</pubDate><description><![CDATA[原文：http://technet.microsoft.com/en-us/library/ms178067.aspx
SQL Server 2012 



Other Versions 



SQL Server 2008 R2SQL Server 2008SQL Server 2005



19 out of 21 rated this helpful
- R]]></description><category></category></item><item><title><![CDATA[浅谈操作系统对内存的管理]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/18668119</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/18668119</guid><author>wangjunhe</author><pubDate>Wed, 22 Jan 2014 17:52:37 +0800</pubDate><description><![CDATA[原文：http://www.cnblogs.com/CareySon/archive/2012/04/25/2470063.html
简介
内存是计算机中最重要的资源之一,通常情况下，物理内存无法容纳下所有的进程。虽然物理内存的增长现在达到了N个GB，但比物理内存增长还快的是程序，所以无论物理内存如何增长，都赶不上程序增长的速度，所以操作系统如何有效的管理内存便显得尤为重要。本文讲述操作系统对]]></description><category></category></item><item><title><![CDATA[浅谈SQL Server 对于内存的管理]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/18617469</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/18617469</guid><author>wangjunhe</author><pubDate>Tue, 21 Jan 2014 17:39:15 +0800</pubDate><description><![CDATA[简介
理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本，本篇文章讲述SQL Server对于内存管理的内存原理。

二级存储(secondary storage)
对于计算机来说，存储体系是分层级的。离CPU越近的地方速度愉快，但容量越小(如图1所示)。比如：传统的计算机存储体系结构离CPU由近到远依次是:CPU内的寄存器，一级缓存，二级缓存，内存，]]></description><category></category></item><item><title><![CDATA[有关T-SQL的10个好习惯]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/18617443</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/18617443</guid><author>wangjunhe</author><pubDate>Tue, 21 Jan 2014 17:37:03 +0800</pubDate><description><![CDATA[1.在生产环境中不要出现Select *
这一点我想大家已经是比较熟知了，这样的错误相信会犯的人不会太多。但我这里还是要说一下。
不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗，这点消耗在我看来完全可以忽略不计。更主要的原因来自以下两点:

扩展方面的问题 造成额外的书签查找或是由查找变为扫描 
扩展方面的问题是当表中添加一个列时，Select *会把这一]]></description><category></category></item><item><title><![CDATA[Windows I/O模型、同步/异步、阻塞/非阻塞]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/10511925</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/10511925</guid><author>wangjunhe</author><pubDate>Thu, 29 Aug 2013 13:55:27 +0800</pubDate><description><![CDATA[同步
　　所谓同步，就是在发出一个功能调用时，在没有得到结果之前，该调用就不返回。按照这个定义，其实绝大多数函数都是同步调用（例如sin, isdigit等）。但是一般而言，我们在说同步、异步的时候，特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口，在对方处理完消息之前，这个函数不返回。当对方处理完毕以后，该函数才把消息处]]></description><category></category></item><item><title><![CDATA[socket阻塞与非阻塞，同步与异步、I/O模型]]></title><link>https://blog.youkuaiyun.com/wangjunhe/article/details/10511259</link><guid>https://blog.youkuaiyun.com/wangjunhe/article/details/10511259</guid><author>wangjunhe</author><pubDate>Thu, 29 Aug 2013 13:47:01 +0800</pubDate><description><![CDATA[socket阻塞与非阻塞，同步与异步


作者：huangguisu





1. 概念理解



     在进行网络编程时，我们常常见到同步(Sync)/异步(Async)，阻塞(Block)/非阻塞(Unblock)四种调用方式：
同步：
      所谓同步，就是在发出一个功能调用时，在没有得到结果之前，该调用就不返回。也就是必须一件一件事做,等前一件做完了]]></description><category></category></item></channel></rss>