[2021][刺杀小说家][1080p/1.43G][国语中字] 磁力链、BT下载
注意:当前版本为tc版本 剧情介绍 异世界皇都,天神赤发鬼残暴统治,滥杀无辜。少年空文因被赤发鬼追杀,决定奋起反击。在黑甲(郭京飞 饰)的指引下,踏上了凡人弑神之路。这是小说家路空文(董子健 饰)笔下的奇幻世界。没想到小说的进程,竟然影响着现实世界。这时一名男子(雷佳音 饰)接下了刺杀他的任务…… 下载地址 刺杀小说家.Assassin.in.Red.2021.TC1080P.X264.AAC.Mandarin.CHS.mp4
[2021][人潮汹涌][1080p/4.18G][国语中字] 磁力链、BT下载
注意:当前版本为tc版本 剧情介绍 2021年,你做好准备换个活法,牛转乾坤了吗? 顶级杀手周全(刘德华 饰)和落寞群演陈小萌(肖央 饰)在一次意外中交换了身份。杀手在跌入谷底的过程中,重新审视了爱情和生活;群演在冒充杀手的过程中,彻底重塑了人生。两个人一起历经的荒诞,有啼笑皆非,更有热血沸腾。 下载地址 人潮汹涌.Endgame.2021.TC1080P.X264.AAC.Mandarin.CHS.mp4
[2021][你好,李焕英][1080p/2.46G][国语中字] 磁力链、BT下载
注意:当前版本为tc版本,清晰度可见下方截图 剧情介绍 2001年的某一天,刚刚考上大学的贾晓玲(贾玲 饰)经历了人生中的一次大起大落。一心想要成为母亲骄傲的她却因母亲突遭严重意外,而悲痛万分。在贾晓玲情绪崩溃的状态下,竟意外的回到了1981年,并与年轻的母亲李焕英(张小斐 饰)相遇,二人形影不离,宛如闺蜜。与此同时,也结识了一群天真善良的好朋友。晓玲以为来到了这片“广阔天地”,她可以凭借自己超前的思维,让母亲“大有作为”,但结果却让晓玲感到意外...... 预览截图 下载地址 磁力链
[2021][唐人街探案3][1080p/4.34G][国语中字] 磁力链、BT下载
注意:当前 版本为ts版本,非高清版,清晰度可以看截图,个人认为清晰度已经很不错了。 剧情介绍 继曼谷、纽约之后,东京再出大案。唐人街神探唐仁(王宝强 饰)、秦风(刘昊然 饰)受侦探野田昊(妻夫木聪 饰)的邀请前往破案。“CRIMASTER世界侦探排行榜”中的侦探们闻讯后也齐聚东京,加入挑战,而排名第一Q的现身,让这个大案更加扑朔迷离,一场亚洲最强神探之间的较量即将爆笑展开…… 获奖记录 第7届豆瓣电影年度榜单最值得期待的华语电影 第6届豆瓣电影年度榜单最值得期待的华语电影 截图预览 下载链接 磁力链
thumbnail
TCP应用编程入门
目录 1. 网络模型 2. 数据链路层 3. 应用场景 4. golang网络模型 5. tcp应用样例 6. 异常场景 7. 参考资料 1、网络模型 1.1 OSI模型 1.2 http报文格式 关键字段:URL 1.3 tcp报文格式 关键字段:端口号 1.4 ip报文格式 关键字段:源IP地址、目的IP地址 1.5 以太帧 关键字段:源MAC地址、目的MAC地址 1.6 问题 lvs、slb的基于端口转发工作在哪一层呢? nginx的域名反向代理转发工作在哪一层呢? 家用普通路由器和无路由功能的交换机呢? 2、数据链路层 通过电信号当中的某一个字段或者光纤当中的某一个固定频率的波来传递控制报文,组合成电物理拓扑和光物理拓扑图; 某一个线路中断时,通过控制报文触发告警,让中断线路的两节点用户数据走其他线路来实现用户网络不中断的目的; 智能化的全自动交换的光网络(ASON); 3、应用场景 Http应用通常用于无状态一次性请求,请求之后连接就关闭的短连接,开发简单; Tcp应用通常用于长连接,客户端和服务端反复发送接收数据,需要自己定义报文格式,开发稍复杂; 4、实现原理 文件路径都在/proc/sys/net目录下 1. TCP收发缓冲区 # TCP接收缓冲(用于TCP接收滑动窗口)的最小值、默认值、最大值 cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 6291456 # TCP发送缓冲(用于TCP发送滑动窗口)的最小值、默认值、最大值 cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4194304 每个TCP套接字有一个发送和一个接收缓冲区,当某个应用进程调用write时,内核从该应用进程的缓冲区复制发送缓冲区;同样的调用read时,内核从接收缓冲区复制到应用进程的缓冲区。 2. 内核缓冲区 网卡接收到的数据存放到内核缓冲区内,然后内核缓冲区存放的数据根据TCP信息将数据移动到具体的某一个TCP连接上的接收缓冲区内,也就是接收滑动窗口内,整个完成从IP层到传输层的数据传递。 3. 滑动窗口 发送窗口 接收窗口 5、golang网络模型 常见网络模型比较 golang用户态模型 绿色goroutine是接受TCP链接 当完成握手accept返回conn对象后,使用一个单独的goroutine来阻塞读(紫色),使用一个单独的goroutine来阻塞写(红色) 读到的数据通过解码后放入读channel,并由蓝色的goroutine来处理 需要写数据时,蓝色的goroutine将数据写入写channel,从而触发红色的goroutine编码并写入conn 汇总: Golang实利用了OS提供的非阻塞IO访问模式,并配合epoll/kqueue等IO事件监控机制;为了弥合OS的异步机制与Golang接口的差异,而在runtime上做的一层封装,这层封装就是netpoller。 最终的效果就是用户层阻塞,底层非阻塞。 5、tcp应用样例 func HandleConn(conn net.Conn) { defer conn.Close() for { // 从连接里面循环读固定长度的数据,这里一般用封装好的io.ReadFull()接口 bytesRead, err = conn.Read(buffer) totalBytesRead += bytesRead for totalBytesRead < toRead && err == nil { bytesRead, err = conn.Read(buffer[totalBytesRead:]) totalBytesRead += bytesRead } // 向连接里循环写入指定长度的数据,实际conn.Write已经实现成循环去写,不需要应用层循环写入 for totalBytesWritten < toWriteLen && writeError == nil { bytesWritten, writeError = conn.Write(buffer[totalBytesWritten:]) totalBytesWritten += bytesWritten } } } func main() { listen, err := net.Listen("tcp", ":8888") if err != nil { fmt.Println("listen error: ", err) return } for { conn, err := listen.Accept() if err != nil { fmt.Println("accept error: ", err) break } // start a new goroutine…
thumbnail
golang 内存占用信息解读
触发方法: 其中debug参数为2是以高可读的方式提供各活跃Goroutine的状态信息和调用栈信息,更便于理解。 方法一(内容比较少场景适用) curl http://localhost:8001/debug/pprof/heap?debug=2 # 这个输出信息可以参考下面的解读 方法二(内容比较多场景适用) # adserver是我的程序名字,需要换成你自己的 scp 10.200.95.17:/opt/zyz/services/bin/adserver ./ # 参数信息见下面“交互式命令” go tool pprof adserver [-alloc_space|-inuse_space] http://10.200.95.17:8001/debug/pprof/heap?debug=2 # 接下来查看方法参考cpu性能统计方式,是类似的 https://www.vvniu.com/108.html 交互式命令 除了和查看cpu一致的top、list等命令,还有就是查看方式不同。 在使用 pprof 查看内存的时候,通常会用到两个选项。 - alloc_space用于告诉你已经分配了多少内存 - inuse_space用于获得正在使用的内存的数量 信息解读 解读一 # 看第一行的1: 5816320 [1: 5816320],四个数字的含义是当前存活对象的数量、存活对象已经占用的内存、分配的总的数量和所有分配已经占用的内存。 对应于具体代码来讲ip_helper.go:52中对应ipRecords对象,当前占用了582k内存,当前的存活的对象也只有一个,总共分配的对象数量也是1个,总共占用内存也是582k。 1: 5816320 [1: 5816320] @ 0x443d21 0x46806d 0x468614 0x94cf80 0x78a4b7 0x50f457 0x50a82b 0x466017 0x4019cb 0x42fa2f 0x460f01 # 0x46806d adserver/util.init.2+0xaed /home/jiyalei/serving_clean/backend/src/adserver/util/ip_helper.go:52 # 0x468614 adserver/util.init+0xf4 /home/jiyalei/serving_clean/backend/src/adserver/util/ip_helper.go:88 # 0x94cf80 adserver/nctrserver.init+0x40 /home/jiyalei/serving_clean/backend/src/adserver/nctrserver/nctrclient.go:42 # 0x78a4b7 adserver/bidserver.init+0x47 /home/jiyalei/serving_clean/backend/src/adserver/bidserver/spec.go:97 # 0x50f457 adserver/bucket.init+0x47 /home/jiyalei/serving_clean/backend/src/adserver/bucket/util.go:52 # 0x50a82b adserver/antispam.init+0x3b /home/jiyalei/serving_clean/backend/src/adserver/antispam/antispam.go:201 # 0x466017 adserver/server.init+0x47 /home/jiyalei/serving_clean/backend/src/adserver/server/adserver_handler.go:356 # 0x4019cb main.init+0x3b /home/jiyalei/serving_clean/backend/src/adserver/adserver.go:36 # 0x42fa2f runtime.main+0x27f /data/opt/go/src/runtime/proc.go:177 解读二 # ip_helper.go:29对应的对象是`line := strings.TrimSuffix(sc.Text(), ";")`读取文件临时生成的内容[]string,其中当前存活了11个,占用内从352字节,总共分配了14个,总共占用内存是448字节。 11: 352 [14: 448] @ 0x4481c7 0x44804f 0x46787c 0x468614 0x94cf80 0x78a4b7 0x50f457 0x50a82b 0x466017 0x4019cb 0x42fa2f 0x460f01 # 0x46787c adserver/util.init.2+0x2fc /home/jiyalei/serving_clean/backend/src/adserver/util/ip_helper.go:29 # 0x468614 adserver/util.init+0xf4 /home/jiyalei/serving_clean/backend/src/adserver/util/ip_helper.go:88 # 0x94cf80 adserver/nctrserver.init+0x40 /home/jiyalei/serving_clean/backend/src/adserver/nctrserver/nctrclient.go:42 # 0x78a4b7 adserver/bidserver.init+0x47 /home/jiyalei/serving_clean/backend/src/adserver/bidserver/spec.go:97 # 0x50f457 adserver/bucket.init+0x47 /home/jiyalei/serving_clean/backend/src/adserver/bucket/util.go:52 # 0x50a82b adserver/antispam.init+0x3b /home/jiyalei/serving_clean/backend/src/adserver/antispam/antispam.go:201 # 0x466017 adserver/server.init+0x47 /home/jiyalei/serving_clean/backend/src/adserver/server/adserver_handler.go:356 # 0x4019cb main.init+0x3b /home/jiyalei/serving_clean/backend/src/adserver/adserver.go:36 # 0x42fa2f runtime.main+0x27f /data/opt/go/src/runtime/proc.go:177 解读三 # runtime.MemStats # Alloc = 232368464 // 系统分配了,并且仍在使用的内存 # TotalAlloc = 515498984 // 分配的内存总量 # Sys = 379609648 // 从系统得到的内存总量 # Lookups…
thumbnail
golang cpu性能统计解读
依赖前提 程序中引入pprof包后可以直接查看线上的服务性能数据 import ( _ "net/http/pprof" ) 触发方法 # 比如程序对外暴露8001端口 go tool pprof http://127.0.0.1:8001/debug/pprof/profile?seconds=60 结果解读 如果没有添加统计时间参数,则触发之后会默认进入30s统计阶段,之后进入交互是界面,可以查看性能数据。我们先这样看,top -cum,是按照cum列按占用时间顺序显示前10个。 [@zyz-4 ~]$ go tool pprof http://localhost:8001/debug/pprof/profile Fetching profile from http://localhost:8001/debug/pprof/profile Please wait... (30s) Saved profile in /data/home/jiyalei/pprof/pprof.localhost:8001.samples.cpu.002.pb.gz Entering interactive mode (type "help" for commands) (pprof) top -cum 10ms of 80ms total (12.50%) Showing top 10 nodes out of 55 (cum >= 10ms) flat flat% sum% cum cum% 0 0% 0% 60ms 75.00% runtime.goexit 0 0% 0% 30ms 37.50% dproxy/helper.(*DataManager).StartRun 0 0% 0% 30ms 37.50% dproxy/helper.(*DataManager).realRun 10ms 12.50% 12.50% 30ms 37.50% dproxy/helper.(*DataManager).startRealTimer 0 0% 12.50% 20ms 25.00% dproxy/helper.(*RpcClient).RealGetFunc 0 0% 12.50% 10ms 12.50% dproxy/helper.(*RpcClient).GetNewClient 0 0% 12.50% 10ms 12.50% encoding/gob.(*Encoder).Encode 0 0% 12.50% 10ms 12.50% encoding/gob.(*Encoder).EncodeValue 0 0% 12.50% 10ms 12.50% encoding/gob.(*Encoder).encode 0 0% 12.50% 10ms 12.50% encoding/gob.(*Encoder).encodeStruct (pprof) top命令默认显示10个,可以通过topN的方式显示N个,cum参数表示按照cum列排序。 flat的意思是本地取样计数,cum的意思是累积取样计数,具体含义引用自官方文档: 本地取样计数和累积取样计数。本地取样计数的含义是当前函数在取样中直接出现的次数。累积取样计数的含义是当前函数以及当前函数直接或间接调用的函数在取样中直接出现的次数。所以,存在这样一种场景:对于一个函数来说,它的本地取样计数是0。因为它没有在取样中直接出现过。但是,由于它直接或间接调用的函数频繁的直接出现在取样中,所以这个函数的累积取样计数却会很高。我们以上图中的函数mian.main为例。由于main.main函数在所有取样中都没有直接出现过,所以它的本地取样计数为0。但又由于它是命令源码文件中的入口函数,程序中其他的函数都直接或间接的被它调用。所以,它的累积取样计数是所有函数中最高的。注意,不论是本地取样计数还是累积取样计数都没有把函数对自身的调用计算在内。函数对自身的调用又被称为递归调用. 我们通常看累计取样计数cum的时间,可以大致体现出来当前的耗时。可以通过list + 函数名的方式查看具体函数内部的占用时间,仅限于“触发方法二”: (pprof) list StartRun Total: 70ms ROUTINE ======================== dproxy/helper.(*DataManager).StartRun in /home/jiyalei/serving_clean/backend/src/dproxy/helper/dataManager.go 0 10ms (flat, cum) 14.29% of Total . . 72:} . . 73: . . 74://run DataManager on caller's gorountine, so caller will be blocked . . 75:func (self *DataManager) StartRun() { . .…
thumbnail
白话原码、反码、补码的产生
数字在自然界中抽象出来的时候,一棵树,两只猪,是没有正数和负数的概念的。计算机保存最原始的数字,也是没有正和负的数字,叫没符号数字。如果我们在内存分配4位(bit)去存放无符号数字,是下面这样子的: 后来在生活中为了表示“欠别人钱”这个概念,就从无符号数中,划分出了“正数”和“负数”。正如上帝一挥手,从混沌中划分了“白天”与“黑夜”。为了表示正与负,人们发明了"原码",把生活应该有的正负概念,原原本本的表示出来。把左边第一位腾出位置,存放符号,正用0来表示,负用1来表示: 但使用“原码”储存的方式,方便了看的人类,却苦了计算机 我们希望 (+1)和(-1)相加是0,但计算机只能算出0001+1001=1010 (-2),这不是我们想要的结果 。 (╯' - ')╯︵ ┻━┻ 另外一个问题,这里有一个(+0)和(-0)。 为了解决“正负相加等于0”的问题,在“原码”的基础上,人们发明了“反码”。 “反码”表示方式是用来处理负数的,符号位置不变,其余位置相反: 当“原码”变成“反码”时,完美的解决了“正负相加等于0”的问题。过去的(+1)和(-1)相加,变成了0001+1101=1111,刚好反码表示方式中,1111象征-0。 人们总是进益求精,历史遗留下来的问题,有两个零存在,+0 和 -0。 我们希望只有一个0,所以发明了"补码",同样是针对"负数"做处理的"补码"的意思是,从原来"反码"的基础上,补充一个新的代码,(+1)我们的目标是,没有蛀牙(-0): 有得必有失,在补一位1的时候,要丢掉最高位我们要处理"反码"中的"-0",当1111再补上一个1之后,变成了10000,丢掉最高位就是0000,刚好和左边正数的0,完美融合掉了。 这样就解决了+0和-0同时存在的问题另外"正负数相加等于0"的问题,同样得到满足举例,3和(-3)相加,0011 + 1101 =10000,丢掉最高位,就是0000(0)同样有失必有得,我们失去了(-0) , 收获了(-8)以上就是"补码"的存在方式。 结论:保存正负数,不断改进方案后,选择了最好的"补码"方案。 参考 知乎用户
[2018][唐人街探案2][HC-MP4/2.43G][国语中字] 磁力链、BT下载
注意 唐人街探案3请移步唐人街探案3,以下是唐人街探案2内容 018年春节档佳片云集,创造了华语电影史上的多个奇迹。陈思诚执导的《唐人街探案2》一马当先,票房7天突破21亿,成为春节档票房冠军,在网上引起众多话题。 [贺岁强档高画质]抢先版,不喜勿下,建议电影院高清观赏! 影片简介 导演: 陈思诚 编剧: 陈思诚 主演: 王宝强 / 刘昊然 / 肖央 / 刘承羽 / 尚语贤 类型: 喜剧 / 动作 / 悬疑 制片国家/地区: 中国大陆 语言: 汉语普通话 上映日期: 2018-02-16(中国大陆) 片长: 120分钟 又名: 唐探2 / Detective Chinatown Vol 2 豆瓣评分:7.1 207954人评价 剧情简介 唐仁(王宝强 饰)为巨额奖金欺骗秦风(刘昊然 饰)到纽约参加世界名侦探大赛,然而随着和世界各国侦探们啼笑皆非的较量,两人却发现了隐藏在这次挑战背后的更大秘密... 缩略图预览 1920x800 HC-MP4/2.43G 下载地址 BT 2018唐人街探案HC1080P国语中字.torrent.zip 磁力链 magnet:?xt=urn:btih:ZV36YLZZ7RFKW2UV2Y6FQXLYDJJ33BAY
thumbnail
[转]中国目前的贫富差距有多大 – 三亚自驾游感想
原文 过年跑去三亚自驾游,人山人海,我爸高速上追尾了一辆路虎。开路虎的是一位大爷。我们打了双闪下车协商,据我爹描述,他当时心里想着到底路虎大爷要的赔偿超过多少他会选择走保险……然后大爷瞅了车屁股一眼,又瞪了我们一眼,开车走了。我们一家:……大概人家急着赶路,真不在乎这点钱。 一路上我都在跟我爸说,你可别再追人家路虎了。我爹表示科科,前面全是百来万的车,哪个追得起? 春节期间,亚龙湾的酒店均价3000/天。回北京的机票已经1w4了。还是人山人海,遍地都是人。 本地人跟我们说,海南人均收入也不高,沿海的房子本地人都买不起,全是外地人来买。而这些海景房,淡季的时候都是空着的,基本上只有冬天的一两个月有人住。 来买房的,主要还是东北人。我们去海边溜达,发现海边还有东北大妈们在跳广场舞,扭秧歌,不亦乐乎。走到哪里都能听见东北话。别的地方的游客跟我们说了个笑话:国家每次往东北投个几百几千亿振兴经济,海南的房价就要大涨一波。(……)这个笑话真的是我听说的,不是我说的…… 国际免税城同样人挤人。关键是我第一次在奢侈品云集的地方看到这么多人……好比小时候元宵节公园的灯会,小孩子走丢了都找不着的那种程度。美妆区简直挤爆,柜姐们一个比一个高冷,都懒得搭理你,但依旧阻挡不住各个年龄段的女性往前冲,比挤地铁还凶,买起口红来就跟不要钱似的。 最后我啥也没买就走了。因为结账的时候,柜姐说必须要出示机票。我开始认真思考,这么多全国各地牌照的车子里装的都是买了机票的人吗? 想吃大龙虾。酒店的餐厅,最便宜的龙虾398/斤,还有1688/斤的,1888/斤的。后来我看到了西红柿蛋花汤——68/例。望了眼几乎坐满了的餐厅,我开始深思我们这种算不算赤贫阶级。 反正最后我没吃大龙虾。 闺蜜亲切地给我安利了淘宝8毛钱一碗的冲泡的西红柿蛋花汤,月销1.2w笔。火速下单后,感觉自己终于重新回归到了最广大人民群众的行列,内心十分踏实。 要说贫富差距有多大?在三亚,相当一部分游客,一周的开销是全国居民一年的人均收入。还有一部分,去免税店买个包、买块表的钱,够二三线城市的人不吃不喝工作个好几年的。国人全世界爆买的时候,我们都感叹国人好有钱。可是我们还有那么多同胞在贫困线上挣扎。 这些都是中国。我们站立的地方。 根据评论反馈更新补充 免税店这个大家是不是没看懂?我没做好功课,去了才知道要机票,就没买成东西。要机票很正常,但是很多外地人自驾去的免税店,那他们怎么买东西呢?一个推测是:他们是坐飞机来的,然后汽车是司机开过港的…… 刚刚一个评论说,他去搜了机票价格,三亚飞北京才1400,还对我人身攻击了一番,我哭笑不得。春节都结束了好吧?初五初六飞北京1w4,飞哈尔滨1w9,评论区都有人证明的,自己翻翻。 说我夸张了的,自己翻评论区本地人怎么说的。 路虎这个,有说套牌的,也有说路虎耐撞的。其实当时高速上堵得特别厉害,时速20-40之间吧,路虎急刹车,我们也跟着急刹车,就亲密接触了。我们肯定是准备赔偿的,但路虎大爷下来一看啥事儿没有,就走了。评论区还有一位丰田的车主,跟我们家一样kiss了路虎,路虎也是啥事儿没有……看来路虎真的很结实…… 我对东北无恶意,就是写了个道听途说的段子。评论区有一个精选评论,是一个东北网友留言的,他提到一些老职工有职业病,到南方来有助于身体恢复,我觉得是有道理的。还有网友说,早些年海南房价不贵,很多东北人是那个时候买的,我也觉得是有道理的。各种声音都有,大家可以去评论区看看,理性看待这个问题。 参考 知乎 作者晴夕