Go自动管理内存 Go垃圾回收机制垃圾回收(GC,garbage collection)是自动内存管理的一种形式,通常由垃圾收集器收集并适时回收或重用不再被对象占用的内存。所谓垃圾回收,即所有的内存分配都做都会被在运行时记录,同时任何对该内存的使用也都会被记录,然后垃圾回收器会对所有已经分配的内存进行跟踪监测,一旦发现有些内存已经不再被任何人使用,就阶段性地回收这些没人用的内存,当然,因为需要尽量最小化垃圾回收的性 2021-12-16 Go语言 内存管理 Go map
对浮点数精度丢失的一点研究 什么叫精度丢失计算不准确我们看看如下代码: 12345float f;for(int i=0;i<100;i++){ f+=0.1f;}printf("%f\n",f); 上述代码中f的结果本应该是10.000000,但是却输出10.000002,如下图所示。这就是浮点数计算不准确的现象,即精度丢失。 我们打印小数点后更多位数,能看得更清楚。p 2021-12-13 杂文 浮点数
Stanford_CS144_Lab1 该lab要求我们实现一个流重组类,可以将Sender发来的带索引号的字节碎片重组成有序的字节写入到byte_stream。接收端从发送端读取数据,调用流重组器,流重组器对数据进行排序,排序好后写入byte_stream。 值得注意的是,无论是lab0中的byte_stream,还是lab1中的重组器,都有capasity的概念,capasity用于模拟内存,capasity由重组器中未排序的数据和 2021-11-27 计算机网络 standford_cs144_lab
Stanford_CS144_Lab3 在这个实验中我们要完成tcp_sender的部分。由于我们实现的是简易的TCP,因此在测试集对于拥塞控制并没有太多要求,且计时器我们也只用实现重传计时器。 我们先来理解bytes_in_flight,bytes_in_flight是发送但还未确认的数据长度。根据概念,这段长度等于_next_seqno减去base。因此我们定义一个base用来维护基序号,同时也可以完成bytes_in_flight 2021-11-23 计算机网络 standford_cs144_lab
Stanford_CS144_Lab2 CS144实际上是基于UDP实现TCP,我们都知道TCP是以stream传输,而UDP是以segment传输,在CS144中,我们会将发送方的stream封装到segment中然后发送,当接收方收到segment后,会将其解析为stream,传递到上层。所以我们说基于UDP实现TCP。 Translating between 64-bit indexes and 32-bit seqnos《自顶向 2021-11-20 计算机网络 standford_cs144_lab
Stanford_CS144_Lab0 Stanford大学的CS144 lab要求我们实现一个TCP。CS144的课程我觉得可以配合《自顶向下》来学习,它是目前最好的中文的计算机网络书籍了。《自顶向下》中采用的是五层模型,当然在CS144中介绍了四层模型和七层模型。华科的计算机网络课程是根据《自顶向下》来备课的,如果有空的话,还可以听一听华科的计网mooc。既然都写到这里了,我们在前言来聊聊计算机网络模型: 四层网络模型链路层:定义 2021-11-20 计算机网络 standford_cs144_lab