首页 文章 精选 留言 我的

精选列表

搜索[优化],共10000篇文章
优秀的个人博客,低调大师

使用DataX同步MaxCompute数据到TableStore(原OTS)优化指南

概述 现在越来越多的技术架构下会组合使用MaxCompute和TableStore,用MaxCompute作大数据分析,计算的结果会导出到TableStore提供在线访问。MaxCompute提供海量数据计算的能力,而TableStore提供海量数据高并发低延迟读写的能力。 将MaxCompute内数据导出至TableStore,目前可选的几种主要途径包括: 自己编写工具:使用MaxCompute SDK通过Tunnel读取表数据,再通过TableStoreSDK再写入数据。 DataX:自己在服务器上托管执行DataX任务。 使用数据集成服务:其系统底层也是DataX,额外提供了服务化以及分布式的能力。 其中第二种是我们最常推荐给用户做临时的数据导出使用的,如果没有需要对数据做特殊处理的需求,我们一般不推荐第一种途径。 DataX在阿里集团

优秀的个人博客,低调大师

Flatpak 探索使用 GPU 虚拟化技术优化图形驱动程序

Flatpak 社区近日提出了一项重要讨论:如何解决 Flatpak 在图形驱动集成方面的长期难题。当前 Flatpak 的图形驱动需要针对运行时(runtime)构建才能正常工作,这种机制在以下两个场景下表现不佳:一是驱动依赖特定内核版本(如 NVIDIA 闭源驱动),二是运行时版本过期(EOL)后不再接收更新,导致新 GPU 硬件不能获得支持且退回到软件渲染 fallback。 Flatpak 是一种沙盒容器式的软件包格式,类似于 Docker,旨在提供一种独立于发行版的打包格式,解决包依赖问题,能在不导致依赖地狱的情况下在同一个系统上安装同一个程序的多个版本。Flatpak 由红帽主导开发,完全开源,支持多个软件仓库。 为了让 Flatpak 应用运行 GPU 加速,开发者尝试了多个方案: 直接挂载主机驱动到运行时:虽然能拿到主机驱动库,但依赖版本和运行时库冲突严重,稳定性无法保证。 附加所有驱动依赖:这种做法将驱动和依赖都带入沙盒,导致应用运行环境紊乱。 利用 linker namespace 技术(如 libcapsule 实现):理论上可以在同一进程隔离不同库,但面临 libc 多版本共存等难题。 Flatpak 开发者 Sebastian Wick 重点关注的一种替代方案是 GPU 虚拟化:通过 Virtio-GPU + Venus + virglrenderer 的组合实现将 Vulkan 命令从沙盒序列化发送到主机执行,从而避免直接在运行时加载主机驱动代码。这一思路虽最初用于虚拟机场景,但社区已开发出名为 vtest 的机制,可通过 Unix 套接字实现类似效果,无需完整 VM 环境。 实际集成时需要处理 Flatpak 启动流程、服务等待与退出清理等问题,并可能需要对 Bubblewrap 和 virglrenderer 等底层组件添加支持。目前这些方法尚在实验阶段,未来可能由 Flatpak 引入动态 GPU 访问守护进程,在运行时根据可用设备自动启动相关服务。 尽管 Flatpak 当前的 GPU 驱动机制在兼容性和更新支持上存在痛点,社区正在通过 GPU 虚拟化等更安全、泛用的技术路线探索解决方案,这有望在未来改善 Flatpak 与现代硬件的集成体验。

优秀的个人博客,低调大师

ip2region 3.11.2 发布 - Java & C# 内存占用优化

Ip2region 是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。 ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的 商用离线数据、在线查询测试、xdb 使用 / 技术文档。 ip2region 3.11.2 版本更新如下: 1,Java LongByteArray 增加固定切片支持,可以设置固定字节数的切片且可以更快的完成指定 offset 的寻址定位操作,可以通过如下方式构建支持固定切片的 LongByteArray: final LongByteArray byteArray = new LongByteArray(int); 2,Java xdb 内部的 content 缓存默认修改为固定切片的 LongByteArray 实现,避免 content 缓存时的 OOM 错误减少峰值堆内存占用,默认的 sliceBytes 为 Searcher.DEFAULT_SLICE_BYTES = 50MiB,最新的 pom 版本为 3.3.0。 3,C# ContentCacheStrategy 直接实现 ICacheStrategy 接口减少启动时候的峰值内存占用,详细分析请阅读:[issue 412]。

优秀的个人博客,低调大师

lamp-cloud 5.8.0 发布,新增缓存清理 + 修复优化全覆盖

项目迭代更新日志 1. chore: 依赖升级 spring-boot-starter-parent:3.5.7 → 3.5.8 spring-framework:更新至6.2.15 nacos:更新至3.1.1 spring-boot-admin:更新至3.5.6 dubbo:更新至3.3.6 hutool:更新至5.8.42 mybatis-plus:更新至3.5.15 fastjson2:更新至2.0.60 2. 问题修复(fix(lamp-mvc)) 修正QueryController查询单体详情接口中id参数位置 3. 配置重构(refactor(config)) 重构sop-service-support和sop-gateway-server ApiConfig、SignException、SignConfig、SignUtil统一由sop-service-support管理 4. 功能新增(feat) lamp-sdk-core:支持文件下载功能,改进响应解析 lamp-sdk-core:支持接口调用时传递回调地址,未传递则默认使用isv表配置地址 lamp-openapi-controller:提供回调接口NotifyCallbackController类 lamp-simple-sdk:提供回调接口示例NotifyTest类 lamp-sop-admin:实现回调接口、重试机制及帮助文档功能 lamp-sop-admin-api:提供回调接口NotifyFacade 四、项目地址 https://github.com/dromara/lamp-cloud https://gitee.com/dromara/lamp-cloud https://gitcode.com/dromara/lamp-cloud 关于 lamp 灯灯(简称灯,英文名:lamp),她是一个项目集,为满足高内聚低耦合设计原则,将一个大项目拆解为以下几个子项目: lamp-util:后端工具集 lamp-cloud:基于 Spring Cloud 实现的后台 lamp-boot:基于 Spring Boot 实现的后台 lamp-job:基于 xxl-job 集成本项目的分布式定时任务 lamp-generator:代码生成器 lamp-web:前端 lamp-cloud简介 lamp-cloud是基于SpringCloudAlibaba、SpringCloud、SpringBoot开发的微服务中后台快速开发平台,支持jdk17、jdk11和jdk8,专注于多租户 (SaaS 架构) 解决方案,亦可作为普通项目(非 SaaS 架构)的基础开发框架使用,目前已实现数据库隔离、字段隔离等租户隔离方案以及非租户隔离的解决方案。 她拥有自研 RBAC(基于租户应用的角色权限控制体系)、网关统一鉴权、数据权限、优雅缓存解决方案、防缓存击穿、前后端统一表单校验、字典数据自动回显、可视化前后端代码生成器、支持多种文件存储、支持多种短信邮件发送接口、灰度发布、防 XSS 攻击、防 SQL 注入、分布式事务、分布式定时任务等功能;支持多业务系统并行开发,支持多服务并行开发,是中后台系统开发脚手架的最佳选择。 lamp-cloud 代码简洁,注释齐全,架构清晰,非常适合个人学习以及中小企业作为基础框架使用。采用 Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking 等主要框架和中间件。本项目旨在实现基础框架能力,不涉及具体业务。

优秀的个人博客,低调大师

ip2region 3.11.0 发布 - Go 并发安全支持 / Java 优化

Ip2region 是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。 ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的 商用离线数据、在线查询测试、xdb 使用 / 技术文档。 ip2region 3.11.0 详细更新如下: 1,Java Ip2Region 服务类实现移动到 org.lionsoul.ip2region.service 包下,便于后期扩展,pom 版本号为 3.3.0,import 方式如下: import org.lionsoul.ip2region.service.Config; import org.lionsoul.ip2region.service.Ip2Region; 2,Golang 增加 Ip2Region 查询服务实现,并发安全支持且支持同时输入 IPv4 和 IPv6 的查询,使用方式如下: import "github.com/lionsoul2014/ip2region/binding/golang/service" // 1, 创建 v4 的配置:指定缓存策略和 v4 的 xdb 文件路径 // 参数1: 缓存策略, options: service.NoCache / service.VIndexCache / service.BufferCache // 参数2: xdb 文件路径 // 参数3: 初始化的查询器数量 v4Config, err := service.NewV4Config(service.VIndexCache, "ip2region v4 xdb path", 20) if err != nil { return fmt.Errorf("failed to create v4 config: %s", err) } // 2, 创建 v6 的配置:指定缓存策略和 v6 的 xdb 文件路径 v6Config, err := service.NewV6Config(service.VIndexCache, "ip2region v6 xdb path", 20) if err != nil { return fmt.Errorf("failed to create v6 config: %s", err) } // 3,通过上述配置创建 Ip2Region 查询服务 ip2region, err := service.NewIp2Region(v4Config, v6Config) if err != nil { return fmt.Errorf("failed to create ip2region service: %s", err) } // 4,导出 ip2region 服务进行双版本的IP地址的并发查询,例如: v4Region, err := ip2region.SearchByStr("113.92.157.29") // 进行 IPv4 查询 v6Region, err := ip2region.SearchByStr("240e:3b7:3272:d8d0:db09:c067:8d59:539e") // 进行 IPv6 查询 // 5,在服务需要关闭的时候,同时关闭 ip2region 查询服务 ip2region.Close() ​3,Java 的查询测试改用 Ip2Region 查询服务来实现,默认使用 data/ip2region_v4.xdb 和 data/ip2region_v6.xdb,可支持同时输入 IPv4 和 IPv6,测试方式如下: ➜ java git:(master) java -jar target/ip2region-3.3.0.jar search ip2region search service test program +-v4 xdb: /data01/code/c/ip2region/data/ip2region_v4.xdb (vectorIndex) +-v6 xdb: /data01/code/c/ip2region/data/ip2region_v6.xdb (vectorIndex) type 'quit' to exit ip2region>> 1.2.3.4 {region: 美国|华盛顿|0|谷歌, took: 170 μs} ip2region>> 240e:3b7:3272:d8d0:db09:c067:8d59:539e {region: 中国|广东省|深圳市|家庭宽带, took: 322 μs} ip2region>> 4,Golang 的查询测试改用 Ip2Region 查询服务来实现,默认使用 data/ip2region_v4.xdb 和 data/ip2region_v6.xdb,可支持同时输入 IPv4 和 IPv6,测试方式如下: ➜ golang git:(master) ./xdb_searcher search ip2region search service test program +-v4 db: /data01/code/c/ip2region/data/ip2region_v4.xdb (vectorIndex) +-v6 db: /data01/code/c/ip2region/data/ip2region_v6.xdb (vectorIndex) type 'quit' to exit ip2region>> 1.2.3.4 {region: 美国|华盛顿|0|谷歌, took: 62.504µs} ip2region>> 240e:3b7:3272:d8d0:db09:c067:8d59:539e {region: 中国|广东省|深圳市|家庭宽带, took: 79.571µs} ip2region>>

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册