V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  corningsun  ›  全部回复第 2 页 / 共 32 页
回复总数  625
1  2  3  4  5  6  7  8  9  10 ... 32  
37 天前
回复了 hchong 创建的主题 生活 想听各位老哥断断家务事
你老婆是对的,这么分明显不公平。

多打感情牌,现在结婚难,没有房子弟弟没法成家,只能这样说。
37 天前
回复了 moefishtang 创建的主题 分享创造 V2EX 电话区号转换脚本
测试手机号 13876666020
37 天前
回复了 moefishtang 创建的主题 分享创造 V2EX 电话区号转换脚本
测试 020
37 天前
回复了 okcdz 创建的主题 问与答 有什么适合送给 1-2 岁小孩?
元宵灯笼玩具
38 天前
回复了 hanssx 创建的主题 汽车 2024 年,是不是学自动档就行了?
看心态吧
把车当工具,那直接 C2 ,方便,好上手。
把车当玩具,那还是手动挡更有乐趣,这个东西马上要成为历史了,以后想买都买不到。
38 天前
回复了 RudyS 创建的主题 汽车 昂克赛拉还是咬咬牙 508L
建议咬牙
47 天前
回复了 werwer 创建的主题 汽车 求推荐结实抗撞的 suv 汽车
带大梁的更耐撞
普拉多 途达 牧马人
坦克 300-500
豹五
感谢分享
50 天前
回复了 XCG0000 创建的主题 分享创造 送龙年微信红包封面
感谢
最后半天,下午火车
“生怕兄弟苦,更怕兄弟开路虎”

千万不要实话实说,他先说了,就说比你少点,入不敷出,存不下钱,月月光。
@irisfor 可以看,但是千万别改。 一行注释都不要动!
50 天前
回复了 dododada 创建的主题 程序员 第一次写总结, 2023 总结
感谢分享。

我今年也遇到过干咳的情况,第一家医院,抽血 CT 都做了,查不出来原因,随便开点药吃了一个月没效果。

果断换医院,医生推荐上呼吸机检查,发现是 “气道高敏”,属于过敏反应,吃了孟鲁司特钠片,只要几十块钱,就好了。

去医院一定要注意,不是每个医生都有良心,第二次去复查,换了医生,就被开中药,贵死了还没效果。

在医生开药的时候一定要提前说不要喝中药。
50 天前
回复了 chanChristin 创建的主题 装修 预计装修房子,求指点
多参考邻居家的装修,看到比较好的,就问下装修公司。
智能家居有个问题要注意,现在很多只支持 2.5G Wi-Fi ,选购路由器时需要注意下参数。
最好是能混合 2.5G 和 5G 的。
这个文章总结的挺好,OP 可以参考下。

https://post.smzdm.com/p/a90zg47o/

如果是我的话,会先上一个能科学的路由器,看看实际信号情况。如果哪个房间网络差,再上有线 mesh
@cloudzhou 小霸王学习机就有,哈哈哈
51 天前
回复了 corningsun 创建的主题 汽车 我自己在使用的一些汽车好物分享
@cssk 从来没用过,哈哈哈
首先推测 checkExistRule(List<String[]> keywordRule, String text) 的实现有问题,OP 的实现只会用到第一条规则。
其次 String 的 contains 匹配是数组下标查找,也是一层循环,效率不高。
建议是先分词,得到 哈希数组,然后再比较,示例代码如下:


public static boolean checkExistRuleV2(List<Set<String>> keywordRule, Set<String> textSet) {
return keywordRule.stream().anyMatch(textSet::containsAll);
}


Benchmark 压测结果如下:循环 10000 次的时间,从 13 ms 降低到 0.5 ms

Benchmark Mode Cnt Score Error Units
Print1024Test.checkExistRule avgt 6 13.877 ± 0.148 ms/op
Print1024Test.checkExistRuleV2 avgt 6 0.528 ± 0.035 ms/op

单元测试代码

package org.corning.v2ex.year2024;

import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.junit.jupiter.api.Test;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import org.openjdk.jmh.runner.options.TimeValue;

import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

public class Print1024Test {

public static List<String[]> keywordRule = Lists.newArrayList(
new String[]{"鼎赛龙", "男士春夏", "D-FINING", "深灰色", "锥形牛仔裤"},
new String[]{"DIESEL", "男士春夏", "DFINING", "深灰色", "锥形牛仔裤"}
);
public static String text = "#DIESEL 大牌好友# @宋雨琦_G-I-DLE 演绎#DIESEL2023 秋冬系列# 牛仔坠饰 D-VINA 包袋。渐变丹宁渲染不羁格调,另类包型注解无畏想象";
public static List<Set<String>> keywordRuleSet = keywordRule.stream()
.map(Sets::newHashSet)
.collect(Collectors.toList());

// 这里可能需要更好的分词手法,trim / 去掉逗号等
public static Set<String> textSet = Arrays.stream(text.split(" ")).collect(Collectors.toSet());

@Test
public void runBenchmarks() throws Exception {
Options options = new OptionsBuilder()
.include(this.getClass().getName() + ".*")
.mode(Mode.AverageTime)
.warmupTime(TimeValue.seconds(1))
.warmupIterations(6)
.threads(1)
.measurementIterations(6)
.forks(1)
.shouldFailOnError(true)
.shouldDoGC(true)
.build();
new Runner(options).run();
}


@Benchmark
@Test
@OutputTimeUnit(TimeUnit.MILLISECONDS)
public void checkExistRule() {
for (int i = 0; i < 10000; i++) {
Print1024.checkExistRule(keywordRule, text);
}
}

@Benchmark
@Test
@OutputTimeUnit(TimeUnit.MILLISECONDS)
public void checkExistRuleV2() {
for (int i = 0; i < 10000; i++) {
Print1024.checkExistRuleV2(keywordRuleSet, textSet);
}
}

}
1  2  3  4  5  6  7  8  9  10 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2873 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 13:03 · PVG 21:03 · LAX 06:03 · JFK 09:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.