- 博客(53)
- 资源 (5)
- 收藏
- 关注
转载 我们是如何做 go 语言系统测试覆盖率收集的?
工程效能领域,测试覆盖率度量总是绕不开的话题,我们也不例外。在七牛云,我们主要使用go语言构建云服务,在考虑系统测试覆盖率时,最早也是通过围绕原生go test -c -cover的能力来构建。这个方案,笔者还曾在 MTSC2018大会上有过专项分享。其实我们当时已经做了很多类型的优化,能够针对很多类型的代码库,自动插桩服务,自动生成TestMain()等方法,但随着接入项目越来越多,以及后面使用场景的不断复杂化,我们发现这套还是有其先天局限,会让后面越来越难受:程序必须关闭才能收集覆盖率。如果将这套系统
2020-07-01 15:09:22 499
转载 macOS升级mojave 10.14后--missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 的解决方案
问题重现每次系统升级总会带来些意想不到的问题,请叫我墨菲定律的实践者,我的座右铭是:如果可能会踩到坑,那么我一定会去坑的边缘试探,并坚定的踩下去!怎么发现问题的呢?!刚升级完好开心啊,新的深色主题很酷啊,划完水可以去开发了啊➜ git statusxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandL
2020-07-08 18:24:05 641
转载 使用 Tortoise SVN 创建 Externals 外部引用目录
在使用 SVN 的时候,偶尔会遇到这样的场景:有一份公共代码或数据需要所有分支共享,如果存储在普通的目录下,切分支之后各个分支该目录可能会出现差异,为了避免这种差异,应该使用 SVN 的 externals 属性,确保在任意分支下的更改在所有分支下都能够生效。这种场景其实很常见,例如有好几个 project 都使用同一份 framework 的代码,且需要同步更新,这时候就得将 frame
2015-09-07 18:59:41 2865
转载 setsockopt、getsockopt详细介绍
本文只讲解socket编程中的 setsockopt、getsockopt两个函数。关于其它函数的介绍可以参考下面链接:http://blog.sina.com.cn/s/blog_a459dcf5010155nf.html 一、 int PASCAL FAR setsockopt( SOCKET s, int level, int optname, const char FAR* opt
2015-09-01 10:42:23 449
转载 神秘的40毫秒延迟与 TCP_NODELAY
最近的业余时间几乎全部献给 breeze 这个多年前挖 下的大坑—— 一个异步 HTTP Server。努力没有白费,项目已经逐渐成型了, 基本的框架已经有了,一个静态 文件模块也已经实现了。写 HTTP Server,不可免俗地一定要用 ab 跑一下性能,结果一跑不打紧,出现了一个困扰了我好几天的问题:神秘的 40ms 延迟。Table of Contents
2015-08-18 17:32:51 472
转载 IOCP相关的一些总结
1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。情况一:调用WSASend发送正确的时候(即立即返回,且没有错误),TCP/IP将数据从程序缓冲区中拷贝到TCP/IP层缓冲区中,然后不锁定该程序缓冲区,由上层程序自己处理。TCP/IP层缓冲区在网络合
2015-08-18 17:02:15 1156
转载 WSAIoctl 的SIO_GET_EXTENSION_FUNCTION_POINTER用法
Winsock2的其他供应商不一定会实现AcceptEx函数。同样情况也包括的其他Microsoft的特定APIs如TransmitFile,GetAcceptExSockAddrs以及其他Microsoft将在以后版本的windows里。在运行WinNT和Win2000的系统上,这些APIs在Microsoft提供的DLL(mswsock.dll)里实现,可以通过链接mswsock.lib或者通
2015-08-18 16:33:17 1560
转载 IOCP服务器开发常见问题
IOCP的工作线程的个数一般设置为processors *2+2,这是综合考虑了工作线程可能是等待/挂起/正在执行的状态。如果你测试出更好的结果,以你的为标准。IOCP的工作线程由系统调度和优化,不要去干预线程的调度,除非你自信能超越系统的调度。在遇到奇怪的问题时,可以尝试减少IOCP工作线程数量,来定位问题所在。应用层在处理收到的数据时,尽快将数据处理掉或是拷贝一份,避免
2015-08-17 17:25:56 526
转载 IOCP知识点及疑惑
原文地址:http://hzdiy.iteye.com/blog/7781942. IOCP发送大数量的问题 有A,B两块数据,如AB两块数据,如果A数据比较大,异步只发送了一部分就返回了,B数据已经提交,¬这时候再发A剩下的部分就乱顺序了 ,该如何处理。 所有重叠操作可确保按照应用程序投递的顺序执行. 然而, 不能确保从完成端口返回的完成通知也按照上述顺序执行". 由此可见, "操作
2015-08-14 15:49:52 1402
转载 Windows 经典的宏——CONTAINING_RECORD
在windows ddk中提供了一个经典的宏,其定义如下:#define CONTAININT_RECORD(address, type, field) / ((type*)((PCHAR)(address) - (PCHAR)(&((type*)0)->field)))这个宏用于取得内存中任何结构体的首地址,要提供的参数是:结构体中某个成员(field)的地址
2015-08-13 11:13:18 572
转载 写MySQL存储过程实现动态执行SQL (转)
--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数 create procedure p_procedurecode(in sumdate varchar(10)) begin declare v_sql varchar(500); --需要执行的SQL语句 declare
2015-08-12 13:57:29 266
转载 mysql innodb 行锁解锁后出现1213 死表现象 Deadlock found when
[Err] 1213 - Deadlock found when trying to get lock; try restarting transaction出现这个原因要记住一点就是:innodb的行锁和解锁都是针对主键索引的。如果查询时根据索引锁表,但更新时却不是通过主键更新,那么等待的解锁查询的进程将会报1213错误,程序里有可能返回一个null值实例:table
2015-08-12 13:52:28 1776
转载 MySQL必知必会笔记(七)安全管理 数据库维护 改善性能
第二十八章 安全管理访问控制 MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,不能多也不能少。换句话说,用户不能对过多的数据有更过的访问权。 访问控制 你需要给用户提供他们所需的访问权,且仅提供他们所需的访问权。 管理访问控制需要创建和管理用户账号 使用MySQL Administrator提供的图形用户界面,可更方便的
2015-08-12 13:47:42 375
转载 MySQL必知必会笔记(六)插入数据 创建和操纵表
第二十章 插入数据 INSERT是用来插入(或添加)行到数据库表的。插入数据的几种方式:1 插入完整的行2 插入行的一部分3 插入多行4 插入某些查询结果INSERT SELECT语句INSERT INTO customers(cust_id,cust_name,cust_email) SELECT cust_id,cust_name,cust_email
2015-08-11 18:00:22 690
转载 MySQL必知必会笔记(五)事务处理 全球化和本地化(字符集和校对)
第二十六章 管理事务处理 并非所有引擎都支持事务处理,MyISAM不支持.InnoDB支持 事务处理可以用来维护数据库的完整性,它保证成批的MySQL语句操作要骂完全执行,要么完全不执行 一些操作(如:添加订单,银行转账等)如果执行到一半的时候因某种数据库故障(如超出磁盘空间、安全限制、表锁等)阻止了这个过程的完成是非常危险的。这怎么样才能解决呢?
2015-08-11 15:29:47 576
转载 MySQL必知必会笔记(四)存储过程 游标 触发器
第二十三章 使用存储过程 MySQL5 中添加了存储过程的支持。 大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个完整的操作需要多条才能完成 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。虽然他们的作用不仅限于批处理。 为什么要使用存储过程:优点
2015-08-11 14:04:29 633
转载 MySQL必知必会笔记(三)SELECT语句 联结表 高级联结 组合查询 全文本搜索
第十五章联结表 Sql最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用sql的select能执行的最重要的操作,能很好的理解联结及其语法是学习sql的一个极为重要的组成部分。 外键:外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。 好处:供应商信息不重复,不浪费空间和时间,方便日后修改,一个表信息改动不影响另一个
2015-08-11 11:14:57 585
转载 MySQL必知必会笔记(二)SELECT语句 计算字段 数据处理函数 汇总函数 分组数据 子查询
第十章 创建计算字段 计算字段 存储在表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化的数据。而不只是检索出数据,然后再到应用程序或报告程序中区格式化。 这就发挥了计算字段的作用了。与前面的字段不同,计算字段并不实际存在于数据库中。计算字段是运行时在SELECT 语句中创建的。 需要注意的是,只
2015-08-10 16:53:57 564
转载 正则表达式基本语法
1.正则表达式基本语法两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;"notice":表示
2015-08-10 16:24:09 406
转载 MySQL必知必会笔记(一)
检索不同的行 检索出来的数据不重复DISTINCT关键字,顾名思义返回不同的值 SELECTDISTINCT columnOneFROM table; //检索出来的columnOne没有重复值 DISTINCT关键字应用于所有列而不仅是前置它的列 SELECT DISTINCT vend_id,p
2015-08-10 15:31:02 300
转载 Sharepoint学习笔记—Debug&TroubleShooting--引入Windbg进行诊断和调试
Windbg是微软开发的免费源码级调试工具。它可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。在Sharepoint的生产机中,由于失去了Visual Studio的支持,我们只有通过一些外围手段来获取相关信息(如ULS log,数据库的Log文件等等),我们也可以使用Dump文件配合Windbg来介入到生产机的诊断调试。本文主要总结如何引入Windbg到Sharepoint中
2015-08-06 17:17:31 313
转载 通往WinDbg的捷径
导言你钟情什么样的调试器?如果你问我这个问题,我会回答是“Visual Studio + WinDbg”。我比较喜欢Visual Studio那朴实无华且易操作的接口,更喜欢它能迅速把我需要的信息以可视的形式展示出来。但遗憾的是,Visual Studio调试器无法获取某些信息。例如,假设我想知道哪个线程正在占用特殊的临界区?或者是哪个函数占用了大部分的栈空间?不用担心,有WinDbg呢。它的
2015-08-06 17:16:36 572
转载 WinDbg学习笔记(转)
最近项目老大要求我在windows登录过程中嵌入智能卡登录验证,需要对gina.dll动手术。花了3天学习消化几个巨人的代码,站在他们的肩膀上,到现在能够显示自己的登录对话框,能够验证用户名密码并登录成功。但在其后调用WlxStartApplication()时失败, GetLastError()返回0。这下没辙了,仅凭简单的MessageBox无法有效的调试。Microsoft的网站上提供了一个
2015-08-06 16:42:57 285
转载 WinDbg入门教程
在我的职业生涯中,我看到我们大多数都是使用Visual Studio来进行调试,而不是用其它许多免费的调试器。你可能有许多理由来使用这样的调试器,比如,在你家里的机器上没装开发环境,但是一个程序一次次的崩溃。其实根据堆栈的dump就可以判断出IE的崩溃是否是由于一个第三方的插件。对于WinDbg,我目前为止还没有发现很好的快速入门的教程。这篇文章结合实例讨论了WinDbg的使用。我首先假设你熟
2015-08-06 14:35:35 330
转载 C++文件读写详解(ofstream,ifstream,fstream)
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include ofstream //文件写操作 内存写入存储设备 ifst
2015-08-05 17:27:27 266
转载 listen()函数中backlog参数分析
Unix网络编程描述如下:总结0. accept()函数不参与三次握手,而只负责从已建立连接队列中取出一个连接和sockfd进行绑定;1. backlog参数决定了未完成队列和已完成队列中连接数目之和的最大值(从内核角度看,是否这个和就是等于sock->recv_queue ?);2. accept()函数调用,会从已连接队列中取出一个“连接”(可以是一个描述连接的
2015-06-29 18:58:38 338
转载 socket通信之可靠和不可靠的原理
socket通信之可靠和不可靠的原理 分类: socket通信 2014-02-23 23:42 1479人阅读 评论(0) 收藏 举报 目录(?)[+]TCP可靠UDP不可靠的实现socket阻塞与非阻塞同步与异步的区
2015-06-24 19:54:51 738
转载 设置SOCKET的发送与接收缓冲区
主 题: 浅析:setsockopt()改善程序的健壮性 作 者: gdy119 (夜风微凉) 不断的收到coolmei25 (梅生)的答谢,我都不好意思了(我都没帮到他),下面写出我在网络编程中的一点心得体会,希望对他(^_^也对大家)有帮助:1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一
2015-06-24 19:32:51 4730
转载 Windows SOCKET 缓存/缓冲区 相关了解 (socket好文)
Windows NT和Windows 2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对Windows NT和Windows 2000的套接字架构有基本的了解是很有帮助的。与其他操作系统不同的是,WinNT和Win2000的传输协议层并不直接给应用程序提供socket风格的接口,不接受应用程序的直接访问。而是实现了更多的通用API,称为传输驱动接口(Transport
2015-06-24 15:11:44 7757
转载 tcp窗口滑动以及拥塞控制
TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;
2015-06-24 15:11:08 315
转载 完成端口中WSAENOBUFS错误的解决方案
摘自CSDN论坛 一、 WSAENOBUFS 错误问题。 这个问题通常很难靠直觉发现,因为当你第一次看见的时候你或许认为是一个内存泄露错误。假定已经开发完成了你的完成端口服务器并且运行的一切良好,但是当你对其进行压力测试的时候突然发现服务器被中止而不处理任何请求了,如果你运气好的话你会很快发现是因为WSAENOBUFS 错误而影响了这一切。 每当我们重叠提交一个sen
2015-06-24 12:11:15 1876
转载 一个简单的IOCP服务器/客户端类
IOCP模型的总结 手机加油站随身带一个简单的IOCP服务器/客户端类 2008-11-06 15:16:40| 分类:技术 | 标签:|举报|字号大中小 订阅 用微信 “扫一扫”将文章分享到朋友圈。 用易信 “扫一扫”将文章分享到朋
2015-06-24 12:00:44 1973
转载 如何获得当前运行模块在进程地址空间的位置
(w)WinMain的hInstanceExe参数实际值是一个内存基地址;系统将可执行文件的映像加载到进程地址空间中的这个位置。例如,系统打开可执行文件,并将它加载到地址0x00400000,则(w)WinMain的hInstanceExe参数值为0x00400000. 为了知道一个可执行文件或DLL文件被加载到进程地址空间的什么位置,可以使用GetModuleHandle函数来返回一个句
2015-06-12 18:13:21 628
转载 查看mysql错误日志定位mysql错误 .
1、MySQL日志比较日志文件文件中的信息作用错误日志记录启动、运行或停止mysqld时出现的问题。系统故障时定位故障原因查询日志记录建立的客户端连接和执行的语句。记录数据库发生的所有操作二进制日志记录所有更改数据的语句。
2015-02-11 11:32:35 1470
转载 cocos2dx添加第三方库注意事项
前一段时间,使用cocos2dx 2.0,在使用中文转码的时候,老是加载出问题。 Error 1 error LNK2019: unresolved external symbol _libiconv_close referenced in function "public: int __thiscall HelloWorld::GBKToUTF8(class std::basic_str
2014-10-31 18:16:18 939
转载 DLL中导出函数的两种方式
DLL中导出函数的两种方式(dllexport与.def文件)(2009-03-06 11:34:58)标签:dll导出函数两种方式__declspecdllexport.def文件it分类:编程技术DLL中导出函数的声明有两种方式:一种方式是:在函数声明中加上__declspec(dllexport);另外一
2014-10-30 13:56:43 487 1
转载 异常处理与MiniDump详解(5) SEH补充
要通过C++的try和catch来捕获SEH异常是可以的,而且当你用了C++的内容有时候你必须要这么做,因为SEH的__try __catch以及__finally是不能和C++的类的对象和平共处的,会出现编译错误。实现起来你有一些铺垫要做。首先你要写一个类,随便一个类,比如叫class Exception,类可以什么都没有,一个空的就可以了。然后,修改编译器的选项,在Code G
2014-10-29 16:09:09 574
转载 异常处理与MiniDump详解(1) C++异常
异常处理与MiniDump详解(1) C++异常write by九天雁翎(JTianLing) -- blog.csdn.net/vagrxie讨论新闻组及文件一、 综述我很少敢为自己写的东西弄个详解的标题,之所以这次敢于这样,自然还算是有点底气的。并且也以此为动力,督促自己好好的将这两个东西研究透。当年刚开始工作的时候,第一个工作就是学习breakpad的源代码,然后
2014-10-29 15:54:27 288
转载 异常处理与MiniDump详解(2) 智能指针与C++异常 .
异常处理与MiniDump详解(2) 智能指针与C++异常write by九天雁翎(JTianLing) -- blog.csdn.net/vagrxie讨论新闻组及文件一、 综述《异常处理与MiniDump详解(1) C++异常》稍微回顾了下C++异常的语法及其类似于函数参数传递的抛出异常对象的copy,引用语义,但是有个问题没有详细讲,那就是C++异常的绝佳搭
2014-10-29 15:54:05 530
转载 异常处理与MiniDump详解(3) SEH(Structured Exception Handling)
异常处理与MiniDump详解(3) SEH(Structured Exception Handling)write by九天雁翎(JTianLing) -- blog.csdn.net/vagrxie讨论新闻组及文件一、 综述SEH--Structured Exception Handling,是Windows操作系统使用的异常处理方式。对于SEH,有点需要说明的是,
2014-10-29 14:37:34 333
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人