摘要:
对于小型XML文件,利用XDocument和XMLDocument可以很方便进行读写(推荐XDocument),但问题是XDocument和XMLDocument是In-Memory类型的,随着文件大小的增大,内存消耗会越来越大,同时读写速度会降低。本文总结如下几种方式操作大型XML文件: 读 - 阅读全文
摘要:
TcpClient类 TcpListener类 TCP通信 UDP通信 参考: 阅读全文
摘要:
Socket类 初始化 public socket (AddressFamily addressFamily,SocketType sockettype,ProtocolType protocolType) public void Bind(EndPoint localEP); // 绑定端口 pu 阅读全文
摘要:
基础概念 Socket,套接字,本质是网络编程接口、提供网络通信的能力,实现不同虚拟机或不同计算机之间的通信。面向客户/服务(C/S)模型,socket是应用层和传输层之间的中间软件抽象层: 顶上三层处理具体网络应用的所有细节、但对通信细节了解很少,底下四层对具体网络应用了解不多、但处理所有的通信细 阅读全文
摘要:
高性能分布式内存对象缓存系统。 参考: Memcached官网; Memcached简介-1;Memcached简介-2; Memcached 教程 | 菜鸟教程; Memcached 教程 | 菜鸟教程; 阅读全文
摘要:
排序概述 选择排序 冒泡排序 插入排序 快速排序 归并排序 堆排序 参考: 阅读全文
摘要:
查找概述 静态表查找:查找 顺序表查找 有序表查找:二分查找,插值查找,Fibonacci查找[0.618] <-- 分割点不同 索引查找:线性索引,树形索引,多级索引 稠密索引 分块索引:块间有序、块内无序,平均查找长度 sqrt(n)+1 ; 倒排索引:速度快,索引项(次关键码,记录号表),由属 阅读全文
摘要:
安装与使用 Redis-x64-3.2.100:服务端 + 客户端 redis-3.2.5:源代码 Redis Desktop Manager - v0.8.8:客户端(基于Qt5的跨平台Redis桌面管理软件,C++编写,响应迅速、性能好,但不支持数据库备份与恢复)【备用客户端:RedisPlus 阅读全文
摘要:
来自英国的用C#语言编写的开源的TCP/UDP网络通信框架,简单方便,性能稳定。 参考: NetworkComms官网; NetworkComms通信框架中文网; 介绍开源的.net通信框架; Networkcomms.net; 阅读全文
摘要:
System.Timers.Timer 服务器计时器,允许指定在应用程序中引发事件的重复时间间隔。 其中, public delegate void ElapsedEventHandler(object sender, ElapsedEventArgs e); 使用示例: System.Thread 阅读全文
摘要:
C#的集合类命名空间介绍: 集合基于ICollection接口、IList接口、IDictionary接口及其泛型接口版本、IEnumerable接口及其泛型版本,其中接口IList和IDictionary均从ICollection接口和IEnumerable接口派生,因此所有集合全部直接或间接基于 阅读全文
摘要:
异步编程 同步编程,请求响应模型,同步化、顺序化、事务化。 异步编程,事件驱动模型,以 Fire and Forget 方式实现。 关于创建异步方法的比较:参考 Thread:不断创建Thread会消耗很大cup,导致异步效率变慢 delegate委托异步:需要不断的实例化委托类,会消耗cup和内存 阅读全文
摘要:
lock 关键字, Monitor 监控器, 参考: ; Semaphore 信号量, Mutex 互斥体, 参考: ; 阅读全文
摘要:
基础概览 多线程之信号系统命名空间 using System.Threading; 线程同步类的继承层次关系图 终止状态和非终止状态 在终止状态下,被WaitOne()阻塞的线程会逐个得到释放。如果一个线程在EventWaitHandle对象处于终止状态时调用其WaitOne()方法,无法起到阻塞线 阅读全文
摘要:
Process 进程类 // 提供对本地和远程进程的访问,启动/停止本地系统进程 public class Process : Component { public int Id { get; } // 系统生成的进程唯一标识符 public string ProcessName { get; } 阅读全文
摘要:
并行~并发 并发 Concurrency,逻辑上的同时发生,一个处理器(在不同时刻或者说在同一时间间隔内)"同时"处理多个任务。宏观上是并发的,微观上是按排队等待、唤醒、执行的步骤序列执行。并发性是对有限物理资源强制行使多用户共享(多路复用)以提高效率。 并行 Parallelism,物理上的同时发 阅读全文
摘要:
概念 内核空间 - 用户空间 Kernel Space与User Space均在虚拟空间,但互不重合,每个进程可以通过系统调用进入内核,内核空间是所有进程和内核共享,不同进程的用户空间是相互独立的。Kernel是OS的核心,独立于普通的应用程序,可以访问受保护的内存空间和底层硬件设备。 内核功能模块 阅读全文
摘要:
一个IO操作涉及两个系统对象: 调用这个IO的用户Process/Thread 系统内核 - System Kernel 一个具体的Read操作包括两个阶段: 内核等待数据准备就绪:Waiting for the data to be ready 从内核向用户进程/线程拷贝数据:Copying th 阅读全文
摘要:
java.nio:NIO-2; NIO 面向流的IO体系一次只能处理一个或多个字节/字符,直至读取所有字节/符,且流中的数据不能前后移动、效率低,当数据源中没有数据时会阻塞线程。Java-4提供的新API,Non-blocking IO(New IO,面向块的IO体系)为所有的原始类型提供Buffe 阅读全文