随笔分类 -  程序开发

上一页 1 ··· 3 4 5 6 7
摘要:http://www.nynaeve.net/?p=80 Debugger flow control: Hardware breakpoints vs software breakpoints In debugging parlance, there are two kinds of breakpo 阅读全文
posted @ 2023-01-20 16:48 dewxin 阅读(168) 评论(0) 推荐(0)
摘要:C#和C++的交互如果自己写代码,一方面繁琐,另一方面容易出错,再者就是代码不太规范。 最近看了一下PInvoke.net的东西,可以直接使用官方写好的。 下面是使用Pinvoke.net打开设备的一个例子。 private void openDeviceButton_Click(object se 阅读全文
posted @ 2023-01-19 00:45 dewxin 阅读(89) 评论(0) 推荐(0)
摘要:https://learn.microsoft.com/en-us/archive/msdn-magazine/2017/may/net-core-cross-platform-code-generation-with-roslyn-and-net-core https://www.tugberku 阅读全文
posted @ 2022-12-13 19:55 dewxin 阅读(152) 评论(1) 推荐(0)
摘要:C#的序列化库很多通过注解Attribute来实现,比如Protobuf-net,Messagepack等。如果手动添加注解,会比较麻烦,尤其在切换序列化库的时候,需要更改对应的注解。 这里实现了一个使用Mono.Cecil来自动添加注解的类,当程序编译后,会修改对应的dll来实现效果。 遇到的坑: 阅读全文
posted @ 2022-12-08 15:41 dewxin 阅读(129) 评论(0) 推荐(0)
摘要:最近用反射,想找到一个接口的父接口,发现baseType是null。 但是dotpeek反射里面显示是有baseType的。 搜了一下,意识到你只能 implement 一个接口,而不能inherit一个接口。所以一个接口想找到父接口应该再次使用GetInterfaces函数。 阅读全文
posted @ 2022-12-03 16:44 dewxin 阅读(71) 评论(0) 推荐(0)
摘要:《TCP/IP Illustrated Volume1 The Protocols》第14章的总结中提到 Karn’s algorithm removes the retransmission ambiguity problem by preventing the use of RTT measur 阅读全文
posted @ 2022-12-03 14:26 dewxin 阅读(279) 评论(0) 推荐(0)
摘要:简介 不管是RPC还是IPC,本质都是通过某种寻址方式调用另一个**工作单元(线程)**的函数(subroutine)。 此处工作单元可以是主机(host),进程(process),线程(thread)。最终函数将在某个主机上的某个进程里的某个线程中执行。 为了简化情况,我们假设一台主机上只运行一个 阅读全文
posted @ 2022-11-26 22:45 dewxin 阅读(219) 评论(0) 推荐(0)
摘要:网络发送数据包,现成的接口Socket.Send在我的电脑上大概会有700us左右的耗时,如果使用SendAsync开销会更大,并且会导致数据包的乱序。 Send阻塞接口慢的原因一方面底层会跑很多代码,另一方面有线程就有竞争,有竞争就有加锁。 于是写了一个轻量的Queue来加速网络发包,平均耗时从7 阅读全文
posted @ 2022-11-18 15:14 dewxin 阅读(109) 评论(0) 推荐(0)
摘要:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/caller-information C#获取调用方的信息,没找到类相关的信息 public void DoProcessing() { Tra 阅读全文
posted @ 2022-11-15 23:32 dewxin 阅读(65) 评论(0) 推荐(0)
摘要:###如果不设置DontFragment udpClient.DontFragment = false; 那么可以发送数据包。接收端随缘收到数据包。使用WireShark可以检测到网卡上对应的数据包。 如果设置DontFragment udpClient.DontFragment = true; 在 阅读全文
posted @ 2022-10-04 16:50 dewxin 阅读(556) 评论(0) 推荐(0)
摘要:https://keithbabinec.com/2018/06/12/how-to-capture-and-debug-net-application-crash-dumps-in-windows/ 默认情况下Windows Error Reporting会处理异常,可以用“事件查看器”查看。 可 阅读全文
posted @ 2022-09-24 23:57 dewxin 阅读(175) 评论(0) 推荐(0)
摘要:《Pro .NET Memory Management》 Chapter6 P428 中讲道大对象(包括Obj对象头部等,总字节占85000及以上)和有finalizer的对象生成的构造函数(JIT_New)会更为复杂,因此开销会更大。对此做了验证。小对象使用辅助函数JIT_TrialAllocSF 阅读全文
posted @ 2022-09-24 17:01 dewxin 阅读(27) 评论(0) 推荐(0)
摘要:《Pro .NET Memory Management》第4章 Sample Program in Depth小节有讲。 先从应用商店下载Windbg 然后设置高级启动变量 • Executable: C:\Program Files\dotnet\dotnet.exe • Arguments: \ 阅读全文
posted @ 2022-09-14 13:17 dewxin 阅读(114) 评论(1) 推荐(0)
摘要:魔改redis之添加命令hrandmember 正文 前言 想从redis的hash表获取随机的键值对,但是发现redis只支持set的随机值SRANDMEMBER。但是如果把hash表中的数据又存一份,占用的空间又太大。也可以通过先HLEN获取hash表的大小,随机出一个偏移值,再调用HSCAN获 阅读全文
posted @ 2020-12-27 22:33 dewxin 阅读(435) 评论(1) 推荐(0)
摘要:redis4.0的持久化 简介 虽然redis是内存数据库,但它也提供了持久化的功能。其中rdb持久化可以定时备份用于回滚,而aof持久化则更接近数据库最新的状态,服务器重启后可以恢复至最新的状态。两者数据备份的粒度不同,rdb将整个数据库备份,aof持久化粒度更为小,但生成的文件更大。如果有多个线 阅读全文
posted @ 2020-12-17 22:19 dewxin 阅读(533) 评论(0) 推荐(1)
摘要:redis4.0的时间事件与expire 简介 时间事件和文件事件有着相似的接口,他们都在aeProcessEvents中被调用。不同的是文件事件底层委托给 select,epoll等多路复用接口。而时间事件通过每个tick检查时间事件的触发时间是否已经到期。redis4.0版本中只注册了一个时间事 阅读全文
posted @ 2020-12-15 19:59 dewxin 阅读(501) 评论(0) 推荐(0)
摘要:redis4.0的命令 简介 正文 redisCommand与redisCommandTable 所有的命令一开始都位于server.c文件起始位置的redisCommandTable中,在观察redisCommandTable表之前,我们先看一下redisCommand结构体。 typedef v 阅读全文
posted @ 2020-12-15 19:55 dewxin 阅读(161) 评论(0) 推荐(0)
摘要:简介 feign对微服务之间的http调用做了一层封装,如果B项目想调用A项目的一个web服务,只需要编写对应的接口并标注FeignClient注解。但如果接口发生了变更,对应的Feign代码往往会忘记修改,而且问题往往在服务启动之后才能发现。 feign-maven-plugin根据当前项目的ja 阅读全文
posted @ 2020-12-09 17:18 dewxin 阅读(1091) 评论(0) 推荐(0)
摘要:redis4.0的文件事件与客户端 简介 文件事件的流程大概如下: 在服务器初始化时生成aeEventLoop并赋值给server,接着创建监听TCP连接事件。 处理TCP连接时会创建client类型的对象,将其绑定在accept函数返回的文件描述符fd上,并对fd注册一个可读事件,当客户端数据来临 阅读全文
posted @ 2020-12-09 17:15 dewxin 阅读(132) 评论(0) 推荐(0)
摘要:redis4.0的启动流程 简介 redis 在接收客户端连接之前,大概做了以下几件事情: 初始化服务端配置 初始化服务器 进入事件主循环 正文 全局server对象 在redis中,有一个全局的对象server保存了redis服务器对象的信息,redis服务器的操作都围绕着该对象展开。下文中当提及 阅读全文
posted @ 2020-12-09 17:14 dewxin 阅读(142) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7