Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于DateTimeFormatter的性能优化方案 #22

Open
wenshao opened this issue Aug 2, 2024 · 12 comments
Open

关于DateTimeFormatter的性能优化方案 #22

wenshao opened this issue Aug 2, 2024 · 12 comments

Comments

@wenshao
Copy link

wenshao commented Aug 2, 2024

@liach

我计划对DateTimeFormatter做性能优化

openjdk/jdk#20391

就是你参与的PR20391,优化性能提升显著,同时变更的代码也非常多。可能需要分拆成多个PR来提交,你帮看下怎么推进才合适。

@liach
Copy link
Member

liach commented Aug 2, 2024

你现在在直接优化PrinterParser;PrinterParser是内部API所以你可以随便改动,比如加new method检测是不是固定长度这样的。我感觉你既然大改PrinterParser本身,可以退一步看更大的架构,因为PrinterParser是内部的可以随意改动:可以移除具体的parse和format,换成生成bytecode需要的属性(比如固定长度等)然后加个method来帮助生成bytecode(类似string concat)。生成bytecode就自由很多,随便自定义lookup table之类的;甚至你可以只给Printer生成一套,不用parser就不给parser生成。生成bytecode用的参数和常量也很自由,只要 DateTimeFormatter.format 和 parse 的参数不变就行了。

@wenshao
Copy link
Author

wenshao commented Aug 2, 2024

我担心,太大的改动导致合入会很难,你是否可以先去帮助问下维护小组的态度

@liach
Copy link
Member

liach commented Aug 2, 2024

维护小组对你现在这个模型更反感,添加太多特殊代码;如果你像String concat一样模块化printerparser然后生成字节码这样维护性通用性应该会更高。printer parser是内部架构,推倒重构没什么大公开影响的。

@wenshao
Copy link
Author

wenshao commented Aug 5, 2024

我先完成 PR #20273 ,然后再继续做DateFormatter的优化。

https://github.com/wenshao/jdk/actions/runs/10243237093

在这里看到,SecurityManager的问题还解决,你有什么建议么?

@liach
Copy link
Member

liach commented Aug 5, 2024

@wenshao 把这个文件 https://github.com/openjdk/jdk/blob/master/test/jdk/java/lang/invoke/MethodHandleProxies/jtreg.security.policy 复制到 String/concat 测试目录下, jtreg 需要读文件权限运行。不知道为什么原来没给他这个权限。

@wenshao
Copy link
Author

wenshao commented Aug 5, 2024

我试了似乎不起作用,可能我哪里没搞对,你可以帮提交个PR过来么?

@liach
Copy link
Member

liach commented Aug 6, 2024

今天一直在jvmls现在才看到,我来调试下。记得到时候看下claes的jvmls演讲视频

@wenshao
Copy link
Author

wenshao commented Aug 6, 2024

哈,期待看到他的视频,什么时候才会放到youtube上啊

@liach
Copy link
Member

liach commented Aug 6, 2024

可能一两个礼拜吧,剧透下你在里面角色不小

然后SecirityManager那个我看了自己跑了,太奇怪了,没法debug(不能attach),正常报这个错误信息的地方都会加cause但这里没有。我还是有空问问claes或者别人这种错误一般怎么处理

@wenshao
Copy link
Author

wenshao commented Aug 9, 2024

PR 20273 我已经解决所有问题,包括HiddenClass卸载的问题。这个PR改动比较大,估计要更仔细的Review,后续我还要做什么?这个PR我花了很多时间,我非常期待推动它的进展 :)

@wenshao
Copy link
Author

wenshao commented Aug 12, 2024

openjdk/jdk#20559
我提交了一个新的PR,你帮找java.time的维护者看下这个是否可以。同时请问下java.time的维护者是谁?我是否可以找他交流

@wenshao
Copy link
Author

wenshao commented Aug 18, 2024

我刚在youtube上看了claes在JVMLS 2024的talk,感谢他提到了我们一起完成的工作,在这个过程中,我学习到了很多,也谢谢你!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants