静态代码扫描可优化的代码,把代码当字串,用正则或字符串技术匹配模式,怎么识别出这种可优化的代码?有空的一起研究下,额外奖分。

问题描述

List<string>A=newList<string>();List<string>B=newList<string>();foreach(stringainA){foreach(stringbinB){if(a==b){//类似这种取交集的,都可以用哈希或IENumerable.Intersect()优化,但不容易扫准}}}for(inti=0;i<A.Count;i++){for(intj=0;j<B.Count;j++){if(A[i]==B[j]){//类似这种取交集的,都可以用哈希或IENumerable.Intersect()优化,但不容易扫准}}}for(inti=0;i<A.Count;i++){foreach(stringbinB){if(A[i]==b){//类似这种取交集的,都可以用哈希或IENumerable.Intersect()优化,但不容易扫准}}}foreach(stringainA){for(intj=0;j<B.Count;j++){if(a==B[j]){//类似这种取交集的,都可以用哈希或IENumerable.Intersect()优化,但不容易扫准}}}

静态代码扫描可优化的代码,把代码当字串,用正则或字符串技术匹配模式,怎么识别出这种可优化的代码?有空的一起研究下,可用分多多,额外奖分。

解决方案

解决方案二:
这个太困难了,你举得例子就可以找出一堆的反驳例子
解决方案三:
是啊,蛋炒饭,最简单也最困难,困难在CSDN上才有意外惊喜的答案。
解决方案四:

解决方案五:
新的roslyn编译器就可以做。问题是你准备怎么优化呢?两个collection取交集复杂度就是O(mn)啊。还可以更快吗?用正则表达式做这个严重不靠谱,趁早放弃。
解决方案六:
没看到楼主说的用哈西,这样能优化不假,但仅限于大数据。多大算大取决于CPU和实测。这种优化不能大规模自动做,副作用很大,收益不确定。不过可以在ide里提示用户注意:可能是性能瓶颈,建议优化。这是在跟reshaper竞争啊。
解决方案七:
我理解楼主是要识别出这种结构for[each]for[each]if至于识别出来后的后续动作并不是主要的正则的可干预度很低,解析他的报告与解析原文没有多大区别对字符串逐字检查关键字就可以实现由于可能还需要同时解析出其他语法成员,可考虑使用trie树做自动机
解决方案八:
为什么不用rosyln呢?就是干这个用的呀。
解决方案九:
reshaper也不能优化代码的性能,只不过是可以帮你优化代码的可阅读性,帮你把代码变得更加规范而已。

时间: 2024-08-02 20:10:26

静态代码扫描可优化的代码,把代码当字串,用正则或字符串技术匹配模式,怎么识别出这种可优化的代码?有空的一起研究下,额外奖分。的相关文章

请问各位,JAVA有哪些开源的代码扫描工具,多谢!

问题描述 JAVA有哪些开源的程序代码扫描工具,最近想学习下相关的代码扫描实现方式,请问各位都使用过哪些?多谢了 解决方案 解决方案二:代码扫描?解决方案三:就是好比EclipseJDT里面的那种对代码层次结构解析扫描的实现哦解决方案四:人家JDT主要就是Java编译器啊!你可以去看看Sunjavac编译器的实现,就知道要实现一个你所谓的"代码扫描器"有多少复杂了!Sunjavac编译器是纯Java实现的有108个类(接口),有超过6万行的源代码.

验证码识别的一些总结及相关代码

思路如下: 1.根据验证码图片的分析结果(主要是分析数字所在的像素位置)确定处理办法. 2.灰度化,然后二值化,生成单色位图. 3.对图片进行分割 3.读取单色位图的像素点,转换为0,1数组. 4.把该数组和提前生成好的0-9的字模数组进行比对,取匹配率最大的那个字模所对应的数字.   相关代码: /// <summary> /// To convert color image to grayscale image /// </summary> /// <param name

正则-如何用php匹配出这段代码?

问题描述 如何用php匹配出这段代码? 有这样一段代码 <div><div><span><span>网盘链接: </span> </span> <span><a href="/ntcweb?id=d866a750-9cec-430a-9ea0-5cfbd6a2007a&level=2&pg=webz&uID=thJP9WeIiHG9tvFy&g_ut=2&key=jg

JAVA 中一个字符串s ,有36位取前24位,代码怎么写?

问题描述 JAVA 中一个字符串s ,有36位取前24位,代码怎么写? 求解..JAVA 中 一个字符串s ,有36位取前24位,代码怎么写? 解决方案 s.substring(0 24) 解决方案二: s = s.subString(s 24); 解决方案三: s.substring(024); substring()方法包头不包尾索引从0开始 解决方案四: s = s.subString(024); substring()方法包头不包尾索引从0开始 解决方案五: s = s.subStrin

遍历-要将数据库中以字符串形式存在的表达式写入if..else if...else if代码中,怎样做到

问题描述 要将数据库中以字符串形式存在的表达式写入if..else if...else if代码中,怎样做到 如题,本来可以一直用if...else if... 把所有的表达式都遍历一遍以找出吻合的项的但现在要求弄个规则库,把表达式的信息都放在规则库中,方便对这些起约束作用的表达式就行管理,如增删查找等操作:我的设想是弄个数据库表,把表达式都存在表中,然后弄个if..else if循环遍历整个表的表达式,但问题是表达式存入数据库中在取出来是字符串,写入代码的时候会有""引号,不符合代码

ios-IOS 如何把16进制字符串转换成byte 求各位大神 最好能有代码

问题描述 IOS 如何把16进制字符串转换成byte 求各位大神 最好能有代码 IOS 如何把16进制字符串转换成byte?求各位大神 最好能有代码 解决方案 字符串由字符组成,每个字符都占用一定的字节,我记得是4还是多少,这是c语言底层的算法,应该还有其他算法

【译】使用 currentColor 属性写出更好的 CSS 代码

本文讲的是[译]使用 currentColor 属性写出更好的 CSS 代码, 总有一些极其强大的 CSS 属性在目前已经有了很好的浏览器支持,但却很少被开发者使用. currentColor 就是这样的属性之一. MDN 把 currentColor 定义为: currentColor 代表了当前元素被应用上的 color 颜色值.它允许让继承自属性或子元素属性的 color 属性为默认值而不再继承. 在本文中,我们将通过一些有趣的方式来概述如何使用 CSS currentColor 这一关键

net-水晶报表(Crystal)在记录选定区域那里怎么根据给的时间计算出是星期几,代码怎么写

问题描述 水晶报表(Crystal)在记录选定区域那里怎么根据给的时间计算出是星期几,代码怎么写

jsp-JSP传给action的是字符串类型,转换数据类型,让getlist()接收,求大神帮帮忙写下代码

问题描述 JSP传给action的是字符串类型,转换数据类型,让getlist()接收,求大神帮帮忙写下代码 JSP传给action的是字符串类型,怎么转换数据类型,然后让getlist()接收,求各位大神帮帮忙写下代码~ 如果能够给解释一下,那就千恩万谢啦 解决方案 可以通过强制转换在前面加上int 解决方案二: gongWenLeiBieList = dao.getList(Integer.parseInt(mingCheng));