V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  MoYi123  ›  全部回复第 12 页 / 共 21 页
回复总数  416
1 ... 4  5  6  7  8  9  10  11  12  13 ... 21  
2022-07-11 17:16:28 +08:00
回复了 ligiggy 创建的主题 C++ 请教如何打 log,性能最好
@ligiggy 我指的是 log4j2 里用的数据结构 disruptor 是我知道的最快的处理日志的方案.
2022-07-11 17:14:11 +08:00
回复了 ligiggy 创建的主题 C++ 请教如何打 log,性能最好
@ligiggy 缓存比直接写估计快 50-60 倍左右吧. 不过具体还是要看 benchmark.
2022-07-11 17:06:53 +08:00
回复了 kaiger 创建的主题 MySQL 公司数据库数据被我更新成 null 了,救命!
下辈子改数据库前记得先打 begin;
2022-07-11 17:04:21 +08:00
回复了 ligiggy 创建的主题 C++ 请教如何打 log,性能最好
一般会弄个队列异步写文件, 性能最好的应该是 log4j2 里用的 disruptor 吧.
这东西还是找找成熟的第三方库吧, 没必要自己写.
不会 java, 学习 stream 难度很高吗? 为什么很多 javaer 以自己会 stream 为荣?
和令牌桶一样的做法啊.
2022-07-08 13:47:07 +08:00
回复了 LxnChan 创建的主题 程序员 为什么我写的代码能跑起来能正确返回但是过不去 leetcode 呢
@seaiaddca go 标准库里有 heap 啊
2022-07-05 16:55:51 +08:00
回复了 Soar360 创建的主题 数据库 强大的多列 IN 查询语句,及数据库支持情况。
把大伙叫出来就这点事啊.
2022-07-01 16:37:58 +08:00
回复了 lix7 创建的主题 Go 编程语言 请教大家几个 Go 写业务的工程实践的上的问题
1. 比如 xorm 有个 setlogger 的功能, 需要把你的 logger 按他的 interface 封装一下, 就可以接入统一的日志了, grpc 和 echo 同理. 一般都会有这个功能, 但是不排除某些第三方库不支持.

2. 一般都是 context 传

3. 多数情况就是 if err != nil,或者用 recover 也行吧.
@wdc63


看下这个库吧, from sortedcontainers import SortedList
把注释删掉大约 600 行

但是中间插入不好搞. 必须定期重新构建整个数据结构.

from sortedcontainers import SortedList

a = [0]


def incr():
a[0] += 1
return a[0]


s = SortedList()
invert = {}
# 向尾部插入单个
idx = incr()
s.add([idx, 'A'])
invert['A'] = idx

idx = incr()
s.add([idx, 'B'])
invert['B'] = idx

# 用下标获取
print(s[0]) # [1, 'A']
print(s[1]) # [2, 'B']

# 用下标删除
s.pop(0)
print(s)

# 用对象本身删除
idx = invert['B']
idx = s.bisect_left([idx, 'B'])
s.pop(idx)

print(s)

# 中间插入(先插入 2 个值)
idx = incr()
s.add([idx, 'A'])
invert['A'] = idx

idx = incr()
s.add([idx, 'B'])
invert['B'] = idx

# 中间插入,在 A,B 间加一个 C
# 这里比较尴尬, float 精度有限, 需要定期用 O(n)重新构建整个表
left = s[0][0]
right = s[1][0]
s.add([(left + right) / 2, 'C'])
print(s)
@wdc63 有点问题, 这个不是很合适.
#include <ext/pb_ds/assoc_container.hpp>

只能 O(logn),而且常数不小.
2022-06-24 16:47:32 +08:00
回复了 monkeyWie 创建的主题 程序员 最近负责 Java 面试,吐槽下
@rabbbit list 是[-1,-2]的时候错了.
@microxiaoxiao 那到底是第一种情况还是第二种呢?
第一种情况设置一个虚拟终点, 除了起点外的点到虚拟终点的权重都是无限大, 用起点到虚拟终点跑一次最大流即可
第二种不会.
2022-06-07 09:31:16 +08:00
回复了 simonlu9 创建的主题 程序员 未读消息数据库设计问题
@simonlu9 这样写性能也会差吗? 试试直接在(userId,type,read_status) 上建索引呢?
log4j2 里用的队列的 go 实现, 代码量不多,可以学到很多高性能的写法. https://github.com/smarty-prototypes/go-disruptor
2022-06-01 09:53:05 +08:00
回复了 cocong 创建的主题 Go 编程语言 诡异的执行结果,有哪位 Go 大神来给瞧瞧?
其实你的代码除了性能比较差, 没什么大毛病吧.
自旋的时候如果失败了, 调一下 runtime.Gosched() ,不然会长时间在死循环里.

package main

import (
"fmt"
"runtime"
"sync"
)

func main() {
var wg = sync.WaitGroup{}
wg.Add(1)
var i = 0

go func() {
for i < 6 {
// 自旋锁
for i%3 != 0 {
runtime.Gosched()
}
fmt.Print("A", i)
i = i + 1
}
}()
go func() {
for i < 6 {
// 自旋锁
for i%3 != 1 {
runtime.Gosched()
}
fmt.Print("B", i)
i = i + 1
}
}()
go func() {
for i < 6 {
// 自旋锁
for i%3 != 2 {
runtime.Gosched()
}
fmt.Print("C", i)
i++
}
wg.Done()
}()
wg.Wait()
}
2022-05-31 15:17:32 +08:00
回复了 coderflying 创建的主题 程序员 这是需求是不是蠢到妈都不认识了?
我们公司还有要填身份证号鉴权,然后去查自己身份证号的接口呢.
2022-05-27 11:40:21 +08:00
回复了 lbllol365 创建的主题 Redis 问下前辈们尝试二开 Redis 报错怎么排查啊
用 clion 把 redis 用 debug 模式跑起来
印象中我当时看的是这篇文章 https://www.modb.pro/db/73281

会用 gdb 就直接 gdb 吧
1 ... 4  5  6  7  8  9  10  11  12  13 ... 21  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6019 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 63ms · UTC 02:08 · PVG 10:08 · LAX 18:08 · JFK 21:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.