1.学编程很无聊?13个有趣又好玩的架构架构Python游戏代码分享
2.一次 Netty 代码不健壮导致的大量 CLOSE_WAIT 连接原因分析
3.李宏毅2023机器学习作业HW04解析和代码分享
学编程很无聊?13个有趣又好玩的Python游戏代码分享
在编程的世界里,枯燥并非必选项。源码通过边打游戏边学习编程,直聘不仅能够提高兴趣,架构架构还能在实践中熟练技能。源码下面,直聘翻页源码我将分享个有趣的架构架构Python游戏代码,让你在快乐中探索编程的源码乐趣。
1、直聘吃金币
源码分享:
2、架构架构打乒乓
源码分享:
3、源码滑雪
源码分享:
4、直聘并夕夕版飞机大战
源码分享:
5、架构架构打地鼠
源码分享:
6、源码小恐龙
玩法:上下控制起跳躲避
源码分享:
7、直聘消消乐
玩法:三个相连就能消除
源码分享:
8、加速球源码俄罗斯方块
玩法:童年经典,普通模式没啥意思,小时候我们都是玩加速的。
源码分享:
9、贪吃蛇
玩法:童年经典,普通魔术也没啥意思,小时候玩的也是加速的。
源码分享:
、点小游戏
玩法:通过加减乘除操作,小学生都没问题的。
源码分享:
、平衡木
玩法:也是小时候的经典游戏,控制左右就行,到后面才有一点点难度。
源码分享:
、毁灭战士源码外星人入侵
玩法:这让我想起了魂斗罗那第几关的boss,有点类似,不过魂斗罗那个难度肯定高点。
源码分享:
、井字棋
玩法:我打赌大家在课堂上肯定玩过这个,想想当年和同桌玩这个废了好几本本子。
源码分享
一次 Netty 代码不健壮导致的大量 CLOSE_WAIT 连接原因分析
我们线上存在一个 Dubbo 服务,遇到大量 CLOSE_WAIT 状态的连接,始终无法消失,因此进行了原因分析。 CLOSE_WAIT 状态出现在被动关闭方,收到对端 FIN 包后回复 ACK,但未发送 FIN 包之前。问题在于服务没有回复 FIN,原因可能是表白时间源码收到了 FIN 包却未发送响应,通过抓包验证了这一情况。 问题核心在于为什么没有回复 FIN。Dubbo 服务底层使用 Netty,作为普通的 TCP 服务端,关键在于 FIN 包的回复。 分析显示,如果服务没有发送 FIN 包,可能原因有: 1. 半连接队列或全连接队列积压,通过 ss 命令查看全连接队列大小和等待 accept 的连接个数。 2. LISTEN 状态的 socket,Recv-Q 表示等待用户进程 accept 的连接个数,Send-Q 表示全连接队列最大容纳的连接数。 非 LISTEN 状态的 socket,Recv-Q 表示 receive queue 字节大小,Send-Q 表示 send queue 字节大小。视频提取源码 通过 ss 命令确认 Recv-Q 为 0,全连接队列无积压。 嫌疑指向 Netty 没有注册事件,导致收到 FIN 包后无动于衷。 进一步发现,凌晨 1 点业务实例加载大量数据导致堆内存占满,持续进行 fullgc。Netty 线程出现 OOM 异常。在 org.jboss.netty.channel.socket.nio.NioServerBoss#process 方法中,Netty 调用 accept 取走连接,第 行尝试注册事件时抛出 java.lang.OutOfMemoryError 异常。 因此,Netty 处理不健壮,try-catch 包裹了 accept 连接和注册事件逻辑,在 OOM 异常处理时,未能成功注册事件或关闭连接,导致连接存在但不被监听处理。 推荐相关视频学习:LinuxC++零拷贝的实现 用户态协议栈 ntytcp
支撑互联网的基石 TCP/IP,5个方面全面解析
TCP/IP协议栈深度解析丨实现单机百万连接丨优化三次握手、四次挥手
LinuxC++后台服务器开发架构师免费学习地址
为模拟问题复现,可使用字节码注入或直接重构 Netty 源码。本地拥有 Netty 源码,采用重构方法更快。重新构建项目后,使用 nc 模拟健康检查握手并断开连接,CLOSE_WAIT 状态连接持续存在直至 Netty 进程退出。再次 nc 断开连接,新增 CLOSE_WAIT 状态。由于服务持续进行健康检查,导致 OOM 期间 CLOSE_WAIT 状态不断增加。 问题核心:Netty 代码不够健壮,尝试捕获异常时,未能正确处理连接注册事件或关闭连接,导致连接存在且未被监听。 修改方式:在 catch 处理 throwable 时关闭连接即可,最新版本的 Netty 代码这部分逻辑已优化,将 accept 和注册事件拆分。有兴趣的读者可以尝试。 学习 TCP、网络编程是解决类似问题的关键。李宏毅机器学习作业HW解析和代码分享
MLSpring - HW4 相关信息:课程主页、课程视频、Kaggle链接、Sample代码、GitHub、Gitee、GitCode。即便Kaggle截止时间已过,你仍可在其上提交并查看分数。但需注意,应于截止前选择两个结果进行最后的Private评分。每年数据集大小与特性虽有细微差别,但基本一致,旧代码适用于新一年的作业。
任务目标:多类分类,性能指标:分类准确度。
数据解析:数据来自VoxCeleb2子集,随机选取了个演讲者。
基线:简单基线(0.),中等基线(0.),在total_steps=时,public_score达到0.。简单参考Optuna进行模型自动调参。
强基线(0.)、Boss基线(0.)。未在PDF中给出Boss基线具体分数,分数来源于Kaggle。模块未显著提升效果,代码中使用全局变量决定是否使用,欢迎大家提出改进意见。
消融研究:Self-Attention Pooling与AMSoftmax在epoch=,下的实验。AMSoftmax接受pred_layer输出,尝试接受encoder输出并重新训练全连接层,但效果不佳,可能为代码问题。
成绩:使用Transformers变体完成Strong基线的提示是转变为Conformer。简单介绍了其模型架构,推荐Pytorch版本源代码。架构包括:SpecAug、Convolution Subsampling、Linear & Dropout、Conformer Block。每个Module使用了残差连接。