让chatGPT帮我找bug 一个MultiPart文件流读取bug记录 - 内存池 - 减少内存使用 - java.io.FileInputStream和Tomcat ServletInputStream 差异 有更新!

  |   0 评论   |   604 浏览

image.png

本文记录了一个由于HttpservletInputstream的读取0字节和FileInpustStream之间的差异导致的一个bug. 原因是因为Tomcat的 org.apache.catalina.connector.CoyoteInputStream 实现会优先判定是否已经关闭了流. 从而在流无效的时候返回EOF (-1) , 而对于FileInputStream的流的读取会先判定读取的大小. 从而导致了差异. 文中还介绍到了如何使用chatGPT来完成bug的排查. 其中chatGPT的能力非常优秀.不过如果你问得不好,可能达不到你想要效果. 具体情况如何, 请看原文吧.

Nginx Buffer 简记 - Nginx Proxy 相关Buffer性质与配置关系 - proxy_buffer_size - proxy_buffers - proxy_busy_buffers_size 有更新!

  |   0 评论   |   1,614 浏览

本文对Nginx的HTTP请求的各个阶段涉及到的缓存(Buffer)相关的配置进行了简单的梳理.
关键字: proxy_buffer_size , proxy_buffering, proxy_buffers , proxy_busy_buffers_size .
看完本文后, 你会对Nginx的请求缓存以及Response缓存有一个基本的了解.
WeChatWorkScreenshot2ec495a7d4934fff95b93ad0ade7be98.png

  1. proxy_buffer_size 用于设置 upstream的header的缓存.
  2. proxy_buffers 用于设置 upstream的response的body(可能不准确)的缓存个数与大小.
  3. proxy_busy_buffers_size 用于设置可用于处于发送busy状态的缓存区大小. 其值最小值必须大于等于 max(proxy_buffer_size,proxy_buffers one buffer size),且必须小于 (proxy_buffers-1)*size

远程回家乞丐级方案 - 基于sshuttle构建穷人的虚拟专网 - VPN 有更新!

  |   0 评论   |   915 浏览

当你创建了一个家用网络,里面有一堆可访问的设备的时候. 你可能想在外面随时随地都可以方便的访问自家的服务. 而sshutle就是这么一款穷人专用的虚拟专用网络方案. 前提是你的网络需要有一个公用IP. 同时你的家用的服务器通过SSH远程登陆. 满足这两个条件, 就可以使用 sshutle 实现远程回家.

软路由R71S-N6000CPU待机功耗与烤机测试 - n6000处理器怎么样 有更新!

  |   0 评论   |   3,174 浏览

本文旨在寻找一款合适的家用轻量级的服务器。甚至都不考虑上EXSI此类系统。 达到轻量稳定低功耗即可?
n6000处理器怎么样? 本篇文章会基于R71S给出一个基础测试. 整体来看功耗和性能都还控制得不错.就是大家都不把TDP6W作为设计功耗. 而是往TDP20W去设计,以期得到更高的性能.

Curl 参数 -T与-F区别 有更新!

  |   0 评论   |   1,748 浏览

-F 实际上是上传的表单的文件内容项的一个缩写.在上传后的内容会是一个表单.具体的表现为Header中会有一个内容类型: Content-Type: multipart/form-data
简言之,实际-F是一个简写的--form的表单的意思. 而实际在上传文件时, 我们是使用的`-F "fieldName=@/path/to/file" 这样的形式指定的一个文件而已. 因此整体BODY是一个表单.而文件是表单内容的一部分.

X86汇编语言风格比较: AT&T 和 Intel 风格 有更新!

  |   0 评论   |   1,208 浏览

大家使用Windows平台的研究较多. 基本接触的程序是Win平台的. IDE用Visual C++ , 自然一般也只会接触到$MS的编译器. 而微软家使用的是Intel 风格的汇编语言. 而在开源界,特别是基于GCC的编译器是使用的是AT&T风格的汇编 . 这里简单记录下两者的区别. 以备查. Linux小白. 如有纰漏, 大家请轻拍.
注: 这里是为了研究语言底层的实现机制,同时研究一些JVM的底层实现逻辑需要. 所以需要对栈帧的结构进行较细致的研究. 因此需要了解编译后的语言的反汇编.

我在 GitHub 上的开源项目

  |   0 评论   |   1,883 浏览

Github Stats 所有开源项目 仓库项目简介Starsfork编程语言 ElfReaderELF 文件解析程序51Java macbookpro-env-initmacbookPro java web development init script.20Shell elf-static-load-appLinux ELF executable File parse and analysis00 GnuMakeManual_CNGNU make 中文手册00 JavaHelloWorld自己写的一些测试Dmeo.我的文章中相关的测试也会放到这里00Java JavaWorldLearningLearn java basic knowledge00 node-spa-helloworld 00JavaScript

Spring6 HTTP interface 初体检 有更新!

  |   0 评论   |   858 浏览

从Spring6和SpringBoot3开始, Spring框架支持通过注解的形式将远程HTTP服务代理为Java接口. 类似于FeignRetrofit.

声明式的HTTP接口包括请求的方式等信息.这样我们可以使用带注解的Java接口简单地表达远程API的细节.让Spring生成一个实现该接口并执行请求的代理. 这样可以有效的减少模板代码.

TCP-IP卷1中译版本第18章18.2.3中关于 ISN 的翻译错误 - TCP/IP协议 有更新!

  |   0 评论   |   487 浏览

原书作者: W. Richard Stevens 著作的第一版本. 英文版本可以在 JD 找到买书链接.
想看电子版本的可以在这里找:CSDN 要分的链接. 如果没有积分想下载.可以私我. 顺便说下这个链接不是我的账号.我找了好久才找到的这一个要分少的链接.

由于之前网络知识断层.所以回顾一下 TCP/IP 相关的知识. 找时间读了下经典著作.豆瓣链接:TCP/IP详解 卷1:协议
译文如下:

说一说我在拼多多购买到假英睿达内存条这件事 - 英睿达内存正品鉴别 有更新!

  |   6 评论   |   5,299 浏览

之前在此博客发布了NAS的开箱文章,有热心的网友告诉我这个可能 是假货。 于是就有了这篇文章,此文章会探索怎样鉴定一个英睿达(Crucial)内存是否是正品。同时也会看看假货有什么特征。 最后会给出假货与真的内存之间的性能跑分数据。帮助大家避坑。
这篇文章会详细说明下目前英睿达(Crucial)内存正品识别 / 正品鉴别 的常规方法和一些避坑的细节. 主要围绕着DDR4的一些规格进行展开说明.

curl时间统计参数time_starttransfer含义以及在文件上传场景下可能的误解 有更新!

  |   0 评论   |   574 浏览

平时大家会使用curl来进行请求时间的测量. 比如:

curl -s  -o /dev/null -w "dns: %{time_namelookup}\ntime_connect: "%{time_connect}"\ntime_appconnect: "%{time_appconnect}"\ntime_pretransfer: "%{time_pretransfer}"\ntime_starttransfer: "%{time_starttransfer}"\ntime_redirect: "%{time_redirect}"\ntime_total: "%{time_total}"\n" www.baidu.com

但是对于其中的参数: time_starttransfer 的理解,并不是那么容易. 在使用curl进行文件上传的场景.