duangsuse::Echo
#math 接下来, 分享 BadApple 的分型艺术🍬👀 我找到了BadApple 的 三角剖分, 内切圆剖分, 四叉树, 一笔画迷宫, 白色mesh 版, 再推荐几种图形学CG, 分形和信号/可视化 (无推荐)
#algorithm 1小时,84 Sorts by Array-Visualize 👀 👏
39:58 tim sort (75%!!! yay)
46:04 introspective sort STD::sort (what)
46:32 optimized bottomup merge sort std::stable_sort (WHAT)
47:19 optimized dualpivot quick sort || #java Arrays.sort (W H A T)
00:00 10年前1kw播放的版本
还有 🥧 HSL 饼图, (镜像)散点, 纯色, 弦图, 极座标 🤯厉害
39:58 tim sort (75%!!! yay)
46:04 introspective sort STD::sort (what)
46:32 optimized bottomup merge sort std::stable_sort (WHAT)
47:19 optimized dualpivot quick sort || #java Arrays.sort (W H A T)
00:00 10年前1kw播放的版本
还有 🥧 HSL 饼图, (镜像)散点, 纯色, 弦图, 极座标 🤯厉害
YouTube
sorting algorithms to relax/study to
Visit our channel Discord: https://discord.gg/thestudio
Shout-out to Control for this idea :P
Check out the NEW home for ArrayV here: https://github.com/gaming32/ArrayV-v4.0
Check out the Mother 1+2 Restoration project: https://discord.com/invite/ajQf9Ut…
Shout-out to Control for this idea :P
Check out the NEW home for ArrayV here: https://github.com/gaming32/ArrayV-v4.0
Check out the Mother 1+2 Restoration project: https://discord.com/invite/ajQf9Ut…
#java #performance 值类型vs引用类型
🤔在内存管理/GC良好的语言里,只读数据的引用 就是值
java Byte[]和byte[] 在复用上都互不兼容,当然没有值类型了☺️
>我有一个含极多重复str 的JSON,想减少其内存占用
这就是常量池嘛, javac和aapt都会做
JVM的str不可变,一般都是全局缓存的,strBuild 在完成时是会查询这个吧。
文件上编解码时中间加个Deflate流
也可能是结构有毛病, 比如把str而非int当成tag
说起来str.intern 早废弃了 ,因为new Str() 都是常量池化由GC管理的
(注:不是,jdk7修正了intern内存泄露的bug -XX:StringTableSize )
你不会不相信HotSpot 研究了20年的GC性能吧?🌚指针去重 不是javaer该想的问题 ,str和strBuffer 区别开了 哪有重复分配的问题
要我说不如直接全py,js 算了,既然有这么一个合并步骤
你不能把str常量池说成 static ,这样叫内存泄露的。既然使用了GC语言不要管指针
String是final class ,我不觉得它算用户对象。 jvm是可以做优化的
它没有提供delete obj 的方法,对用户化指针管理 已经有个态度。C#里就是能,还可以调用unsafe
问题在于jdk做不到py 那样包装C++,众人拾柴火焰高 ,无法真的在内存性能上服众
那你就只能自己搞个基于HashMap 的String() 了呗,可惜json读写器们不支持😅
或许靠AOP硬把jackson. new String 替换为缓存的函数?
>你说的这个全局池子不高效,是负优化,这大概也是Java不去实现的理由之一
可是它只在创建str时有开销啊..
所以有strBuild
总之gson们不支持用户的“数据类型”,只能手写JSON读写器了 ,要不然没法实现解析时就去重
如果你想做,只有二次遍历对象图
https://t.me/Javaer/922773
🤔在内存管理/GC良好的语言里,只读数据的引用 就是值
java Byte[]和byte[] 在复用上都互不兼容,当然没有值类型了☺️
>我有一个含极多重复str 的JSON,想减少其内存占用
这就是常量池嘛, javac和aapt都会做
JVM的str不可变,一般都是全局缓存的,strBuild 在完成时是会查询这个吧。
文件上编解码时中间加个Deflate流
也可能是结构有毛病, 比如把str而非int当成tag
说起来str.intern 早废弃了 ,因为new Str() 都是常量池化由GC管理的
(注:不是,jdk7修正了intern内存泄露的bug -XX:StringTableSize )
你不会不相信HotSpot 研究了20年的GC性能吧?🌚指针去重 不是javaer该想的问题 ,str和strBuffer 区别开了 哪有重复分配的问题
要我说不如直接全py,js 算了,既然有这么一个合并步骤
你不能把str常量池说成 static ,这样叫内存泄露的。既然使用了GC语言不要管指针
String是final class ,我不觉得它算用户对象。 jvm是可以做优化的
它没有提供delete obj 的方法,对用户化指针管理 已经有个态度。C#里就是能,还可以调用unsafe
问题在于jdk做不到py 那样包装C++,众人拾柴火焰高 ,无法真的在内存性能上服众
那你就只能自己搞个基于HashMap 的String() 了呗,可惜json读写器们不支持😅
或许靠AOP硬把jackson. new String 替换为缓存的函数?
>你说的这个全局池子不高效,是负优化,这大概也是Java不去实现的理由之一
可是它只在创建str时有开销啊..
所以有strBuild
总之gson们不支持用户的“数据类型”,只能手写JSON读写器了 ,要不然没法实现解析时就去重
如果你想做,只有二次遍历对象图
https://t.me/Javaer/922773
Telegram
duangsuse in Java 编程语言
我问了,你可以改一下: https://t.me/dsuses/5197
用reflect 写一个深度遍历对象图的 deepCopy(obj,func) ,它支持将 List,HashMap,getFields() 内的值映射为新值
改正: 在kotlin 用java reflect 写一个深度遍历对象图的 deepSetAs(obj,func) ,它支持将 List,Map,getFields() 内的值修改为func调用
并实现基于HashMap的unifyEqualsPtrs 函数,作为func
用reflect 写一个深度遍历对象图的 deepCopy(obj,func) ,它支持将 List,HashMap,getFields() 内的值映射为新值
改正: 在kotlin 用java reflect 写一个深度遍历对象图的 deepSetAs(obj,func) ,它支持将 List,Map,getFields() 内的值修改为func调用
并实现基于HashMap的unifyEqualsPtrs 函数,作为func
Forwarded from duangsuse
#learn #java 我还想写一个用于js-java RPC的序列化器 ,但认知遭到了强类型Object 的颠覆..
不知道想new 任意T 除了用{k:v}初始化还有什么细节,疯狂问 #bing 但是它什么(资料)也没搜集到 ,它啥都没帮到
说一些我的发现:
1.
从这个角度serde器和NFA都高级了,因为 “它的语法是动态的”.. 即优化的数据校验😅
2.对于
这一点ktx是要求用
3. Java的泛型擦除导致
Kt却可以用
比如说,
不知道想new 任意T 除了用{k:v}初始化还有什么细节,疯狂问 #bing 但是它什么(资料)也没搜集到 ,它啥都没帮到
说一些我的发现:
1.
JSON.parse("")
构造的数据完全是根据str来的,比如 0~9=num, ""=str, [] {}=Arrayobj, true/false/null
;但 Json.from<T>
对str的读取会根据T是 Map,List,Long 。只有构造Object的情况才等于parse,否则能自定义T的语法, 按Schema及早报错从这个角度serde器和NFA都高级了,因为 “它的语法是动态的”.. 即优化的数据校验😅
2.对于
List<Object>
等子类不定的,需要保存type: typeID 或者说全称类名来区分 这一点ktx是要求用
@Serializable sealed class
或 ser Module 来添加(Any的子类)3. Java的泛型擦除导致
List<Str,Num,.>
看起来是一样的,这样不仅有List<T>.ser 需要T.ser 的注入问题,还有局部变量没泛型反射,只能手动构造 List<Int>
等泛型TypeKt却可以用
reified fn= gson.fromJson(json, object:TypeToken<T>(){})
比如说,
Set<Pair<Str, User>>
读取是 Ary { next==str, KV(新建User) { set prop } }
, 这个Pair.ser 的格式是据AB.类型.ser 而定,简直是把json的[]{}符号附着在类型上GitHub
kotlinx.serialization/docs/polymorphism.md at master · Kotlin/kotlinx.serialization
Kotlin multiplatform / multi-format serialization - Kotlin/kotlinx.serialization
duangsuse::Echo
https://zhuanlan.zhihu.com/p/604608272 #plt #js #py 最近在写一个h5和js插件的扒谱工具.. 因为想自动化,接入一些pip上乃至阿里云讯飞云的AI多媒体工具,相当耗时间,恐怕得个把月了 此插件使用h5文件写入、webext、web/原生互通讯等接口。各种接口、多进程缓解ai模型加载慢不是问题, 阿里讯飞等识别结果的不一致倒挺浪费精力的😂 也是无语,难的反而比简单的容易..
以上任务栈应该是1月1日 ,我花1k RMB买到 SynthV+煊宇 开始的,“恍如隔世”。
期间好像也就写了5个能用的脚本
#statement
但其实,我对编程的习惯,并没有发生根本上的变质
硬要说,从minbase64(我的第一个java AIDE应用) 开始,我的编程理念就是“不折腾 只探索”
只要有“偷懒”的可能性,就不会认真持续单个项目。究极目标是以0作1
用0门槛,实现高门槛的技术
https://t.me/dsuse/18091
就像我说的,
复杂只代表不成熟和懒于反省代码
编程语言不是技术, 它是细化「软件说明书」的母语
优雅的代码一定是好用、直观的
期间好像也就写了5个能用的脚本
#statement
但其实,我对编程的习惯,并没有发生根本上的变质
硬要说,从minbase64(我的第一个java AIDE应用) 开始,我的编程理念就是“不折腾 只探索”
只要有“偷懒”的可能性,就不会认真持续单个项目。究极目标是以0作1
用0门槛,实现高门槛的技术
https://t.me/dsuse/18091
就像我说的,
复杂只代表不成熟和懒于反省代码
编程语言不是技术, 它是细化「软件说明书」的母语
优雅的代码一定是好用、直观的
Telegram
duangsuse::Echo
#code https://jsbin.com/yihulozeya/1/edit?js,output
排序算法,但是支持“顺序自定义” 😂 3年前有人说逻辑上无法完成
曾经撕逼的2个设计点,变成编程的动力。
嗯.. 现在的我,能理解 #android 开发者为什么对逆向那么生气 像 https://t.me/dsuse/10855
我是开源主义者,而现在的我更是轻代码重效果的信徒, 所以观念上并不认可 drakeet 封闭拒绝[技术]的态度。
从道德上,逆向工程是不对的,即便一些中国人用逆向来创作/AOP。…
排序算法,但是支持“顺序自定义” 😂 3年前有人说逻辑上无法完成
曾经撕逼的2个设计点,变成编程的动力。
嗯.. 现在的我,能理解 #android 开发者为什么对逆向那么生气 像 https://t.me/dsuse/10855
我是开源主义者,而现在的我更是轻代码重效果的信徒, 所以观念上并不认可 drakeet 封闭拒绝[技术]的态度。
从道德上,逆向工程是不对的,即便一些中国人用逆向来创作/AOP。…
#java #PLT #code Expr/visitor problem
🤦🏻好吧,我服了, 10页纸也没讲到重点
要学习这种大佬的文章, 开销还蛮大的 。果然自己从根源问题来解,是最好的选择
直接说 把eval 改成
把R改成Eval接口就能用新类型添加操作,例如
哪来那么多破事
type Exp
- eval Any
data N(lit:N) Exp
^-eval=lit
data Add(e:PairOf<Exp>, k="+") Exp“
树结构
”
^-eval=e.lets: A.eval+B.eval
''Value=Either<Int Bool>
“没必要用 VInt VBool 来实现sealed class”
type Exp
-'R' accept(: .Vis) R
'R'type Vis...
- N(:N)R
- Add(:PairOf<R>)R
“Exp 本身就可二次遍历,省略建立树结构的Vis”
named IntOps Exp.Vis<Int>
^- N(n)=n.Int
^- Add(e,k)=e.lets: A+B
Add(N(3),N(5)).accept(IntOps)==8
🤦🏻好吧,我服了, 10页纸也没讲到重点
要学习这种大佬的文章, 开销还蛮大的 。果然自己从根源问题来解,是最好的选择
直接说 把eval 改成
visit(:为各子类重载)R
就能解偶,把R改成Eval接口就能用新类型添加操作,例如
Op(EvalX,EvalX)=>可toStr的树
正如把 eval:Int 改为 eval:Any 就能做更多事哪来那么多破事
Telegram
duangsuse in Kotlin CN
窝槽,居然是冰封前博客 的代码原文
和冰封查重率70% .. 仔细瞧ice1k做了一些重命名,但感觉……太原汁原味了
回头我拿绝句把pdf概况下,看看它样板代码占了几页
(真的不想再看到 public 这个字了,毫无意义占篇幅,该死的Javaer
和冰封查重率70% .. 仔细瞧ice1k做了一些重命名,但感觉……太原汁原味了
回头我拿绝句把pdf概况下,看看它样板代码占了几页
(真的不想再看到 public 这个字了,毫无意义占篇幅,该死的Javaer
#py #java #meme 这个 meme 更适合 langchain😅 .ref
比如什么 aspectJ.HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
https://www.zhihu.com/question/550314430/answer/3098679716
超长 类型名
*: chain.run() 的参数会填写对话上文, 按推导自由度temper 回复
翻译器的上文是:
👇 #kt T? 有"多少种" Nullable 注解
比如什么 aspectJ.HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
https://www.zhihu.com/question/550314430/answer/3098679716
超长 类型名
*: chain.run() 的参数会填写对话上文, 按推导自由度temper 回复
翻译器的上文是:
>!你是翻译{input_language}为{output_language} 的好帮手
>{text}
👇 #kt T? 有"多少种" Nullable 注解
#dev #java 又做了意义不大的重写: Observer 实现 Trello 任务-状态 看板
我不讨厌各种UI和"Java版CMS" ,也不觉得有技术很厉害,但好代码一定要恰如其分
use! py time json datetime什么烂代码,尤其是原文, 我才不想写这种
data TaskSubject @impl??
- attach(:Observer)
- detach(:Observer)
- notify(:Tasker)
^now
''(named ts) Tasker=Pair<Task User>
type Observer
- update(:Tasker)
^now
''Author=Pair<User datetime>
- User as=Author(this,datetime.now())
named BoardUpdate Observer
^- update(ts) = ts.A let:
at prev=st_history.first{it.id==id}?.history[_-1].status
prev? :
boards[prev].may{it has id}: it pop id //什么逻辑
boards[status] add id
//显示 “小明刚更新了 吃饭->已完成”
named StatusTrack Observer
^- update(ts) = ts let:[(task uid)]
st_history.first{it.id==task.id}?.history?
.lets:
add (uid by task.status)
.or:
st_history add task.id 这TM不就是defaultdict吗
made:
tasks rw.Ln<Task.Raw>
st_history rw.Ln<Pair<Str Author>>
boards [:"To-Do" [].as<Ln<Task>>, "In-Progress" [] ]
data Task(:rw.Ln<Observer>) TaskSubject
^- notify(ts)
observers: update(ts)
^- attach==observers{add}
^- detach==observers{pop}
when- as
Raw'id created updated'(_ed Author, updated=created,status="")
- create(:Tasker)
tasks add Raw(tasks.size+1, ts.B)
notify(ts)
- update(:Tasker, st1:Str)
tasks.letsIf{id==task}:
status=st1; updated=uid
break
我不讨厌各种UI和"Java版CMS" ,也不觉得有技术很厉害,但好代码一定要恰如其分
Ritwik Math's Blog
Python Design Pattern: Observer Design Pattern
Understand Python Design Pattern: Observer Design Pattern benefits, implementation, and real-world use cases.
duangsuse::Echo
#FP #sql #code 真正的 relational 笔记本👏 那种能 x+2=5 的。SQL做不到呢(预先 insert values (3,2,5)? ) 花了一大把时间用来学习在逻辑式里写DFS搜索.. 今天终于把序列化(/解析)器项目前堆积的事项完成了, 虽然这质量,怎么看都是很失败.. 也就主要是for loop 的功能,但确实简洁了点。 学了关系式 constraint (注意不是sympy线代)后,觉得能更好的理解类型系统了
https://www.zhihu.com/question/36738189/answer/908664455
LeetCode 最经典的 100 道题目
编程指北 csguide.cn
#tool visualize
https://visualgo.net/en
https://www.cs.usfca.edu/~galles/visualization/Heap.html#BuildHeap
https://cscircles.cemc.uwaterloo.ca/java_visualize/ #java
https://algorithm-visualizer.org/Algorithm
bing真是太厉害了,它能把2D矩阵移植到list..
LeetCode 最经典的 100 道题目
编程指北 csguide.cn
#tool visualize
https://visualgo.net/en
https://www.cs.usfca.edu/~galles/visualization/Heap.html#BuildHeap
https://cscircles.cemc.uwaterloo.ca/java_visualize/ #java
https://algorithm-visualizer.org/Algorithm
bing真是太厉害了,它能把2D矩阵移植到list..
duangsuse::Echo
#statement #PLT 编程造成问题 vs 解答造成编程 现况带来问题 vs 审美带来现况 软件的价值很有限,思想的复杂很空虚;不以自己的价值观拉黑人,是最大的尊重 我们有时难相理解🧐 “那你的 IDE 做的怎么样了,带类型的补全有么,还是笔记本没高亮?” (“IDE支持? parser写完了当然会自带高亮和变量寻址/空缺提示啊? 什么叫能解析,但没高亮?”) 这是因为我草稿的PRR 里,输入流就是用高亮-区间嵌套来实现增量解析;没有高亮你连 unparse(ast) 都做不到 —诶,就…
#statement #Java 本来就已经和 C 一样了,
更不要说
再比如
tcp 填“文件收发”消息不写文件长度, 却想着 1024byte 一块,全\0或isEnd属性结尾, 黏包 拆包 ……
就像 #android 把
设计模式往往是解决语法的缺失,但我相信许多class就是程序员硬加上去的
这不定义式。但就连 Haskell, React 的设计者他也不是为了「软件功能」服务,都有自己的“宏大叙事” ,100个框架有100个术语和写法,功能却完全一样,唯独没有100%好用的
我想要的代码,是“只用写一遍”,也 ”只能写一遍” 的;无论在任何年代,对接上任何app的需求, 都想不出更普遍的用词和接口,即便需求复杂到“不普遍”的程度。
问题和解法,都只有唯一一种,描述问题就是解法,这才叫程序设计🙏
py或许够规范,但性能和OOP 上的(生态?)缺陷让它受限于脚本和计算,不方便做前后端的模块 ;所以我现在很少操心android这些框架
static 成员是非常落后、非常不OOP的设计, ruby,py,js 里 class 都是“类对象”;虽然 kt 没有用元类实现反射,认识到 companion 和 fun 处于不同的执行周期是很必要的
Rust就把struct成员和静态 ::new 隔离的很好
sendMessage(Message message)
这种该重载为 send(Message msg)
的UserInfo PicInfo
(class Info .User .Pic ) 的,一大堆更不要说
x.a=1; x.b=2
(x.apply{a=1;b=2} ) 和 Builder 了,尤其是 build(): Builder.Immutable ,那种玩意是人手写的吗? (运行期不可变 往往会降低性能)再比如
Adapter(it:T1): T
和 Delegate(it:T) T by it
,如果支持as隐转 fun T.as=object: T1 {}
和subclasshook (继承时生成代码) 就不是“class”和 “by语法”了, ktx.serialization 那些魔法也大可丢掉tcp 填“文件收发”消息不写文件长度, 却想着 1024byte 一块,全\0或isEnd属性结尾, 黏包 拆包 ……
就像 #android 把
body.animate({color:'red'})
或 transition:color 1s; @animation { to { color: red; .. } }
写成 ValueAnimator 😅设计模式往往是解决语法的缺失,但我相信许多class就是程序员硬加上去的
这不定义式。但就连 Haskell, React 的设计者他也不是为了「软件功能」服务,都有自己的“宏大叙事” ,100个框架有100个术语和写法,功能却完全一样,唯独没有100%好用的
我想要的代码,是“只用写一遍”,也 ”只能写一遍” 的;无论在任何年代,对接上任何app的需求, 都想不出更普遍的用词和接口,即便需求复杂到“不普遍”的程度。
问题和解法,都只有唯一一种,描述问题就是解法,这才叫程序设计🙏
py或许够规范,但性能和OOP 上的(生态?)缺陷让它受限于脚本和计算,不方便做前后端的模块 ;所以我现在很少操心android这些框架
static 成员是非常落后、非常不OOP的设计, ruby,py,js 里 class 都是“类对象”;虽然 kt 没有用元类实现反射,认识到 companion 和 fun 处于不同的执行周期是很必要的
Rust就把struct成员和静态 ::new 隔离的很好
#py 周刊
#ts Mypy: 1.5
Mypy 是 Python 的静态类型检查工具,1.5 版本主要功能有: @overrride 、更灵活的 TypedDict(字面创建的 dataclass) 创建和更新、可显示错误代码的文档、改进了泛型函数的类型推断、
#ai 整理和预处理pdf文件,让GPT访问
- 杀死 ProcessPoolExecutor
Python 自身不适合处理 CPU 密集型任务,文章中项目原本使用进程池来规避 GIL 问题,后使用线程、C++ 扩展,内存使用量减少 50%,CPU 使用量减少约 20%
- 观点: Py 不适合编写100行以上的软件,因为弱类型、重构难和性能
- 上下文管理器
骗你的。Java式接口让人难以评价:
btw. 你可以用 %%showast 和 astor 查看算式的树状图和代码形式
- viztracer 提供了 DevTools profile 页
#datas 绘制多个直方图、折线图表
- #tex 对比"星星旗帜"的海龟画图 Python 来学习 PostScript
PostScript 广泛用于打印机、出版和图形设备。文章将可被
#java 如何编写简单的C模块,篡改 CPython 解释器的数字
导入一个模块后,如何让 print(8) 会打印出 9?只需要拿到整数对象池,交换两个大整数引用的值
在 py 文件中写上一句,执行这个文件,幕后都发生了什么呢?文章使用了 readelf 、strace 、ldd 、debugfs 、/proc 、ltrace 、dd 和 stat 等工具,详细解释了脚本被执行的过程。
主要涉及操作系统,GNU libc 相关的内容
推荐阅读
—
#js htmx: 强化的 form table dialog,交互式界面扩展
#php 🤯 Slack: 我们认真觉得PHP好用
#ts Mypy: 1.5
Mypy 是 Python 的静态类型检查工具,1.5 版本主要功能有: @overrride 、更灵活的 TypedDict(字面创建的 dataclass) 创建和更新、可显示错误代码的文档、改进了泛型函数的类型推断、
__slots__
的优化、步进 Python 3.12#ai 整理和预处理pdf文件,让GPT访问
from bot import Retriever, llm_reply#backend 用 numpy, 线程池 优化数学区间求和函数
- 杀死 ProcessPoolExecutor
Python 自身不适合处理 CPU 密集型任务,文章中项目原本使用进程池来规避 GIL 问题,后使用线程、C++ 扩展,内存使用量减少 50%,CPU 使用量减少约 20%
- 观点: Py 不适合编写100行以上的软件,因为弱类型、重构难和性能
from contextlib import suppress的妙用
with suppress(FileNotFoundError):
- 上下文管理器
from tenacity import Retrying, stop_after_attempt #AbortSignal:
for attempt in Retrying(3):
with attempt
骗你的。Java式接口让人难以评价:
for i in Retrying(stop=stop_after_attempt(3)):#visualize #plt LibCST: 遍历Python3代码树
with i:
print(f"🧨炸弹{'真的'*i.retry_state.attempt_number} 要炸了!")
try: time.sleep(2) # 按Ctrl+C !
except:pass
else: raise Exception("💥!")
btw. 你可以用 %%showast 和 astor 查看算式的树状图和代码形式
- viztracer 提供了 DevTools profile 页
#datas 绘制多个直方图、折线图表
- #tex 对比"星星旗帜"的海龟画图 Python 来学习 PostScript
PostScript 广泛用于打印机、出版和图形设备。文章将可被
convert -page 720x480 flag.ps flag.png
的程序,直译成对接到 matplotlib 的 Python 代码#java 如何编写简单的C模块,篡改 CPython 解释器的数字
导入一个模块后,如何让 print(8) 会打印出 9?只需要拿到整数对象池,交换两个大整数引用的值
swap( (PyLongObject*)PyLong_FromLong(8)->ob_digit[0] , (9) )#os #linux 在 execvp(["python3", “Hello World.py”]) 时,会发生什么?
在 py 文件中写上一句,执行这个文件,幕后都发生了什么呢?文章使用了 readelf 、strace 、ldd 、debugfs 、/proc 、ltrace 、dd 和 stat 等工具,详细解释了脚本被执行的过程。
主要涉及操作系统,GNU libc 相关的内容
推荐阅读
—
#js htmx: 强化的 form table dialog,交互式界面扩展
<form hx-put="/contact/1" hx-target="this" hx-swap="outerHTML">
#php 🤯 Slack: 我们认真觉得PHP好用
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#15:如何分析 FastAPI 异步请求的性能?
🦄文章&教程
- 如何分析 FastAPI 异步请求的性能?
- 利用 FastAPI 的后台任务:增强性能和响应能力
- 使用 Python 创建直方图
- Mypy 1.5 发布了
- 在 Linux 上运行 Python 的“Hello World”脚本时,会发生什么?
- 通过对比 Python 来学习 PostScript
- Python 中不那么随意的性能优化
-…
Python 潮流周刊#15:如何分析 FastAPI 异步请求的性能?
🦄文章&教程
- 如何分析 FastAPI 异步请求的性能?
- 利用 FastAPI 的后台任务:增强性能和响应能力
- 使用 Python 创建直方图
- Mypy 1.5 发布了
- 在 Linux 上运行 Python 的“Hello World”脚本时,会发生什么?
- 通过对比 Python 来学习 PostScript
- Python 中不那么随意的性能优化
-…