介绍一个简单的程序,用于计算无法直接加载到内存(1GB)的大文件(100GB)中最常出现的url的topn。
用法生成测试数据makedata使用1GB网址进行测试maketest使用100GB网址运行makerun算法根据hash(url)将输入文件拆分为1009个小文件。
加载每个小文件,通过dict计算url的出现次数,然后通过堆获取topn出现次数。
合并步骤2中所有出现的topn事件,并获得最终的topn并进行打印。
复杂度分析N是网址数。
NS是分割文件的数量,等于1009。
K是我们想要的结果URL的数量,等于100。
BS是缓冲区大小的大小,可能是4096或8192,请参见步骤1从输入文件读取或写入拆分文件的时间均为N/BS*T(diskio),哈希计算的时间为N*T(hash),因而时间复杂度为O(max(2*N
2022/9/25 16:57:51 14.13MB C
1
完成端口通讯服务器(IOCPSocketServer)设计(六)功能强大的IOCPSocketServre模块例程源码Copyright©2009代码客(卢益贵)版权所有QQ:48092788 源码博客:http://blog.csdn.net/guestcode一、声明版权声明:1、通讯模块代码版权归作者所有;
2、未经许可不得全部或部分用于任何项目开发;
3、未经许可不得部分修改后再利用源码。
免责声明:1、 由于设计缺陷或其它Bug造成的后果,作者不承担责任;
2、未经许可的使用作者不提供任何技术支持服务。
权利和义务:1、任何获得源码并发现Bug的个人或单位均有义务向作者反映;
2、作者保留追究侵权者法律责任的权利。
二、开发背景部分代码由前项目分离而来,尚未有应用考验,但对于初学者学习和进阶有很大帮助。
功能上尚未有定论,但应该不会令你失望。
三、功能说明1、可以关闭Socket的Buffer;2、可以关闭MTU(不等待MTU满才发送);
3、可以多IP或多端口监听;
4、可以重用socket(主动关闭除外);
5、可以0缓冲接收(Socket的Buffe=0时,避免过多的锁定内存页);
6、可以0缓冲连接(客户端仅连接,不一定立即发数据);
7、可以条件编译:a、是否使用内核Singly-linkedlists;
b、是否使用处理线程(工作线程和处理线程分开);
c、是否使用内核锁来同步链表。
8、可以实现集群服务器模式的通讯(有客户端socket);
9、可以单独设置每个连接的Data项来实现连接和Usernfo的关联;
10、每个线程有OnBegin和OnEnd,用于设置线程独立的对象(数据库会话对象);
11、可以提供详细的运行情况,便于了解IOCP下的机制,以及进行调试分析;
12、可以发起巨量连接和数据(需要硬件配置来支持)。
2019/3/8 21:17:23 966KB IOCP Socket Servre
1
一. 实验目的1. 了解存储器的组成结构,原理和读写控制方法2. 了解主存储器工作过程中各信号的时序关系3. 了解挂总线的逻辑器件的特征4. 了解和掌握总线传送的逻辑实现方法二. 实验原理1.基本操作:读写操作读操作是从指定的存储单元读取信息的过程;
写操作是将信息写入存储器指定的存储单元的过程2.读写操作过程首先要由地址总线给出地址信号,选择要进行读写操作的存储单元,然后,做写操作时,先从数据总线输入要存储在该单元的数据,通过控制总线发出相应的写使能和写控制信号,这时,数据保存在该单元中;
做读操作时,只需通过总线发出相应的读控制信号。
该数据就出现在总线上了3.总线传送计算机的工作过程,实际上也就是信息的传送和处理过程,而信息的传送在计算机里面频度极高,采用总线传送必不可少,它可减少传输线路、节省器件、提高传送能力和可靠性。
总线传送器件中大量使用的是三态门。
三态门(ST门)主要用在应用于多个门输出共享数据总线,为避免多个门输出同时占用数据总线,这些门的使能信号(EN)中只允许有一个为有效电平(如低电平),由于三态门的输出是推拉式的低阻输出,且不需接上拉(负载)电阻,所以开关速度比OC门快,常用三态门作为输出缓冲器。
其中74LS244是专用做挂总线用的三态门器件之一。
1
原始图警告:该项目不再维护。
对于SQL数据映射,请使用。
protoc-gen-map通过将SQL数据映射到协议缓冲区来简化复杂数据集的管理。
除了定义原型消息和SQL语句外,开发人员无需编写任何数据检索或映射代码。
方法protoc-gen-map采用“数据库映射”方法(在MartinFowler的描述),在具有严格代码审查流程和专门的数据库建模人员团队的组织中非常有用。
protoc-gen-map与语言无关。
任何支持协议缓冲区的语言都可以使用已定义的消息通过gRPC请求和检索数据。
该框架不是对象关系映射器(ORM)。
对于大型和复杂的数据集,在处理复杂查询时,使用ORM会受到限制并降低功能。
SQL模板protoc-gen-map使用golang的模板引擎(文本/模板)。
这使开发人员可以根据gRPC请求消息动态修改sql参数,使用if语句或for循环,以及将大型SQL语句拆分为多个逻辑块。
下面的示例中有更多内容。
范例与指南简单的例子让我们使用一个非常简单的模式假设我们要根据某些请求检索博客信息。
为此,我们可以如下创建gRPC服务和SQL模板
2018/9/14 6:45:12 136KB go sql protobuf grpc
1
最近有项目要做一个高功能网络服务器,决定下功夫搞定完成端口(IOCP),最终花了一个星期终于把它弄清楚了,并用C++写了一个版本,效率很不错。
但,从项目的总体需求来考虑,最终决定上.net平台,因此又花了一天一夜弄出了一个C#版,在这与大家分享。
一些心得体会:1、在C#中,不用去面对完成端口的操作系统内核对象,Microsoft已经为我们提供了SocketAsyncEventArgs类,它封装了IOCP的使用。
请参考:http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1。
2、我的SocketAsyncEventArgsPool类使用List对象来存储对客户端来通信的SocketAsyncEventArgs对象,它相当于直接使用内核对象时的IoContext。
我这样设计比用堆栈来实现的好处理是,我可以在SocketAsyncEventArgsPool池中找到任何一个与服务器连接的客户,主动向它发信息。
而用堆栈来实现的话,要主动给客户发信息,则还要设计一个结构来存储已连接上服务器的客户。
3、对每一个客户端不管还发送还是接收,我使用同一个SocketAsyncEventArgs对象,对每一个客户端来说,通信是同步进行的,也就是说服务器高度保证同一个客户连接上要么在投递发送请求,并等待;
或者是在投递接收请求,等待中。
本例只做echo服务器,还未考虑由服务器主动向客户发送信息。
4、SocketAsyncEventArgs的UserToken被直接设定为被接受的客户端Socket。
5、没有使用BufferManager类,因为我在初始化时给每一个SocketAsyncEventArgsPool中的对象分配一个缓冲区,发送时使用Arrary.Copy来进行字符拷贝,不去改变缓冲区的位置,只改变使用的长度,因此在下次投递接收请求时恢复缓冲区长度就可以了!如果要主动给客户发信息的话,可以new一个SocketAsyncEventArgs对象,或者在初始化中建立几个来专门用于主动发送信息,因为这种需求一般是进行信息群发,建立一个对象可以用于很多次信息发送,总体来看,这种花销不大,还减去了字符拷贝和消耗。
6、测试结果:(在我的笔记本上时行的,我的本本是T420I78G内存)100客户100,000(十万次)不间断的发送接收数据(发送和接收之间没有Sleep,就一个一循环,不断的发送与接收)耗时3004.6325秒完成总共10,000,000一千万次访问平均每分完成199,691.6次发送与接收平均每秒完成3,328.2次发送与接收整个运行过程中,内存消耗在开始两三分种后就保持稳定不再增涨。
看了一下对每个客户端的延迟最多不超过2秒。
2020/5/13 2:27:34 15KB IOCP 完成端口 源码
1
ArcGIS实验指导书(完整版下载)实验一、使用ARCMAP浏览地理数据1一、实验目的1二、实验预备1三、实验步骤及方法3第1步启动ArcMap3第2步检查要素图层5第3步显示其它图层6第4步查询地理要素7第5步检查其它属性信息9第6步设置并显示地图提示信息11第7步根据要素属性设置图层渲染样式14第8步根据属性选择要素18第9步使用空间关系选择地理要素20第10步退出ArcMap22四、实验报告要求23实验二、空间数据库管理及属性编辑24一、实验目的24二、实验预备24三、实验内容及步骤25第1步启动ArcCatalog打开一个地理数据库25第2步预览地理数据库中的要素类26第3步创建缩图,并查看元数据28第4步创建个人地理数据库(PersonalGeodatabase-PGD)29第5步拖放数据到ArcMap中37第6步编辑属性数据及进行1:M的空间查询38第7步导入GPS数据,生成图层40四、实验报告要求44实验三、影像配准及矢量化46一、实验目的46二、实验预备46三、实验内容及步骤46第1步地形图的配准-加载数据和影像配准工具46第2步输入控制点47第3步设定数据框的属性49第4步矫正并重采样栅格生成新的栅格文件52第5步分层矢量化-在ArcCatalog中创建一个线要素图层53第6步从已配准的地图上提取等高线并保存到上面创建的要素类中58第7步根据GPS观测点数据配准影像并矢量化的步骤59四、实验报告及要求65实验四、空间数据处理66一、实验目的66二、实验预备66三、实验内容及步骤68空间数据处理68第1步裁剪要素68第3步要素融合71第4步图层合并72第5步图层相交74定义地图投影75第6步定义投影75第7步投影变换――地理坐标系->北京1954坐标系转换->西安80坐标系76四、实验报告要求77实验五、空间分析基本操作79一、实验目的79二、实验预备79三、实验内容及步骤80空间分析模块801.了解栅格数据812.用任意多边形剪切栅格数据(矢量数据转换为栅格数据)833.栅格重分类(RasterReclassify)864.栅格计算-查询符合条件的栅格(RasterCalculator)875.面积制表(TabulateArea)886.分区统计(ZonalStatistic)907.缓冲区分析(Buffer)928.空间关系查询959.采样数据的空间内插(Interpolate)9610.栅格单元统计(CellStatistic)10011.邻域统计(Neighborhood)102四、实验报告要求104实验六、缓冲区分析应用(综合实验)105一、实验目的105二、实验预备105三、实验内容及步骤1051.距离制图-创建缓冲区1051.1点要素图层的缓冲区分析1051.2线要素图层的缓冲区分析1071.3多边形图层的缓冲区分析1092.综合应用实验1102.1水源污染防治1102.2受污染地区的分等定级1122.3城市化的影响范围115四、实验报告要求118实验七、地形分析-----TIN及DEM的生成及应用(综合实验)119一、实验目的119二、实验预备119三、实验内容及步骤1191.TIN及DEM生成1191.1由高程点、等高线矢量数据生成TIN转为DEM1191.2TIN的显示及应用1222.DEM的应用1332.1坡度:Slope1332.2坡向:Aspect1362.3提取等高线1382.4计算地形表面的阴影图1392.5可视性分析1422.6地形剖面144四、实验报告要求145实验八、MODELBUILDER土壤侵蚀危险性建模分析(综合实验)146一、实验目的146二、实验预备146三、实验内容及步骤1461.认识ModelBuilder操作界面1462.确定目标,加载数据1473.创建模型1474.编辑模型1505.执行模型,查看结果164四、实验报告要求165实验九、水文分析-DEM应用169一、实验目的169二、实验预备169三、实验内容及步骤1721.数据基础:无洼地的DEM1722.关键步骤:流向分
2020/8/13 2:15:16 14.21MB ArcGIS实验指导书(完整版下载)
1
CSpect插件各种插件,和:trade_mark:的仿真器。
在下载最新版本。
外挂程式UART记录器一个可配置的记录器,用于CSpect模仿的NextESP和PiUART。
有关安装和配置的详细信息,请参见其。
UART替换缓冲的UART替代内部CSpect模仿的UART。
有关安装和配置的详细信息,请参见其。
备用UART将二进制字节写入串行端口,而内部CSpectUART将字节限制为ASCII字符0x00..0x3f。
发送AT指令到ESP-01并不重要,但是使用对ESP进行编程需要一个二进制UART。
UART使用预分频器计算(考虑当前视频时序)动态响应写入的UARTI/
2020/3/14 8:03:41 793KB plugin emulator csharp plugins
1
在FPGA里面实现DAC8830的驱动程序,能够调理采样率,并且有SPI的发送和接受的时序代码,里面设置了发送缓冲buffer,通过乒乓实现的,数据连续。
数据来源是DSP6678的SPI口发送给FPGA的。
2017/3/1 10:13:03 8.41MB Verilog FPGA DAC8830 SPI
1
汇编写的.LED显示;*****************************;*万年历程序*;*****************************;67H(高两位年)66H(低两位年)65H(月)64H(星期);63H(日)62H(小时)61H(分)60H(秒)57H(农历月)56H(农历日);显示缓冲单元7CH~7BH(4CH~4BH)年低位,7AH~79H(4AH~49H)月,;78H(48H)星期,77H~76H(47H~46H)日,75H~74H(45H~44H)时,;73H72H(43H~42H)分,71H~70H(41H~40H)秒,5EH~5DH(55H~54H)农历年;5CH~5BH(53H~52H)农历月,5AH~59H(51H~50H)农历日;闰年标志为F0,定时器T1为调整时候闪烁用;;
1
图形化实现:多线程并发同步,缓冲区容量为2,爸爸放苹果,妈妈放橘子,儿子吃苹果,女儿吃橘子。
2020/8/10 1:04:27 5.22MB 多线程 VC 图形化
1
共 304 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡