AnotherRedisDesktopManager icon indicating copy to clipboard operation
AnotherRedisDesktopManager copied to clipboard

bitmap预览切换类型时导致卡死 v1.7.1

Open SushanO opened this issue 8 months ago • 5 comments

Image

SushanO avatar Apr 28 '25 09:04 SushanO

bitmap底层实现和string一样,这种提示尺寸过大的情况下就先别切换了,不过可以加上oversize视图时禁止用户切换的功能

qishibo avatar Apr 29 '25 01:04 qishibo

bitmap底层实现和string一样,这种提示尺寸过大的情况下就先别切换了,不过可以加上oversize视图时禁止用户切换的功能

是手速快点开的,还没渲染完就点开了

SushanO avatar Apr 29 '25 03:04 SushanO

Image

Size: 1.05MB,实现BloomFilter打开也卡,直接无响应10几秒

import org.redisson.api.RBloomFilter;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

@Service
public class BloomFilterService {

    private static final String USERNAME_BLOOM_FILTER = "usernames:bloom";

    private RBloomFilter<String> usernameBloomFilter;

    @Autowired
    private RedissonClient redissonClient;

    /**
     * 初始化布隆过滤器
     */
    @PostConstruct
    public void initBloomFilter() {
        usernameBloomFilter = redissonClient.getBloomFilter(USERNAME_BLOOM_FILTER);
        // 预计插入 1,000,000 个用户名,误判率 0.01
        usernameBloomFilter.tryInit(1_000_000L, 0.01);
    }

    /**
     * 添加用户名到布隆过滤器
     */
    public void addUsername(String username) {
        usernameBloomFilter.add(username);
    }

    /**
     * 检查用户名是否存在
     */
    public boolean isUsernameExists(String username) {
        return usernameBloomFilter.contains(username);
    }
}

kaiser20106 avatar May 08 '25 14:05 kaiser20106

感觉有几点优化可以做: 1、针对bitmap或者大型bf,String类型获取之前先尝试读取一下key的尺寸,超过设定值就直接不展示了,这种类型也没啥展示的必要 2、现在text和hex视图都是原生textarea实现的,字符太多时确实会有卡顿,可以换成monaco这种虚拟容器的编辑器来实现

qishibo avatar May 09 '25 03:05 qishibo

感觉有几点优化可以做: 1、针对bitmap或者大型bf,String类型获取之前先尝试读取一下key的尺寸,超过设定值就直接不展示了,这种类型也没啥展示的必要 2、现在text和hex视图都是原生textarea实现的,字符太多时确实会有卡顿,可以换成monaco这种虚拟容器的编辑器来实现

是否展示应该交给用户。作为一个配置选项。 因为,有的用户需要展示的,即使慢一点也无所谓。比如,可能是调试阶段。

Cassiel-girl avatar Aug 04 '25 13:08 Cassiel-girl