首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RocketMQ原理与应用

    RocketMQ实战—10.营销系统代码优化

    大纲1.营销系统引入MQ实现异步化来进行性能优化2.基于MQ释放优惠券提升系统扩展性3.基于Redis实现重复促销活动去重4.基于促销活动创建事件实现异步化5.推送任务分片和分片消息batch合并发送实现 6.推送系统与用户群体查询逻辑解耦7.查询用户数据以及批量发送推送消息8.线程池封装以及推送系统多线程推送9.推送系统的千万级消息多线程推送10.千万级用户惰性发券代码实现11.指定用户群体发券的代码实现 12.分片消息的batch合并算法重构实现13.百万画像群体爆款商品推送代码实现14.生产环境百万级用户PUSH全链路压测10.千万级用户惰性发券代码实现(1)给全量用户发放优惠券的初版实现(2)给全量用户惰性发放优惠券的优化实现 次,经过两次分桶,这里发送消息的次数从100w次降到10次 int handledBucketCount = 0; List<String> jsonMessageBatch itemDTO.setActivityEndTime(platformCouponMessage.getActivityEndTime()); return itemDTO; }}(2)给全量用户惰性发放优惠券的优化实现一

    36710编辑于 2025-04-18
  • 来自专栏RocketMQ原理与应用

    RocketMQ实战—10.营销系统代码优化

    大纲 1.营销系统引入MQ实现异步化来进行性能优化 2.基于MQ释放优惠券提升系统扩展性 3.基于Redis实现重复促销活动去重 4.基于促销活动创建事件实现异步化 5.推送任务分片和分片消息batch 合并发送实现 6.推送系统与用户群体查询逻辑解耦 7.查询用户数据以及批量发送推送消息 8.线程池封装以及推送系统多线程推送 9.推送系统的千万级消息多线程推送 10.千万级用户惰性发券代码实现 11. 指定用户群体发券的代码实现 12.分片消息的batch合并算法重构实现 13.百万画像群体爆款商品推送代码实现 14.生产环境百万级用户PUSH全链路压测 接下来优化营销系统的四大促销场景的代码:全量用户推送促销活动 优化:使用MQ实现异步化处理后,写库(10毫秒) + 发送一条消息给MQ(10毫秒)。 2.基于MQ释放优惠券提升系统扩展性 MQ主要有三大作用:削峰填谷、异步化提升性能、解耦提升扩展性。 1万个分片任务,每个任务要写10次MQ,10万次,每次10ms,总共需要1000000ms=1000s=20分钟左右 //多台营销系统,对每个分片任务的10个batch都是线程池并发写的

    44710编辑于 2025-04-18
  • 来自专栏用户中心项目

    Day10_用户注销功能 & 代码优化_后端

    开发用户注销 1.操作sessions时当作map操作就好,登录时记录了,删用户时也要移除 补充用户校验注册逻辑 1.后台补充对比编号的校验:长度、唯一性 2.前端后端发送请求字段名要一致 后端优化 建议先把功能完成再具体优化 定义东西捕获所有异常并且返回ResultUtils.error 在造语法糖 1.定义业务异常处理类(相对于java的异常类,支持更多字段 自定义构造函数,更灵活/快捷的设置字段); 2.编写全局异常处理器 ( 捕获代码中所有的异常

    19710编辑于 2025-10-08
  • 来自专栏林德熙的博客

    win10 uwp 禁止编译器优化代码

    有时候写了一些代码,但是在优化代码的时候出错,但是如果不优化代码,性能很差。如何让编译器不优化一段代码? 一般发布的软件都会选优化代码,点击属性选择生成就可以看到优化代码 ? 假如有方法 Foo ,这个方法里面写了一些特殊代码,不想让编译器优化,那么可以如何做? 有一个特性,可以让编译器不优化这段函数,这个特性就是MethodImpl [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining

    57710发布于 2018-09-18
  • 来自专栏林德熙的博客

    win10 uwp 禁止编译器优化代码

    有时候写了一些代码,但是在优化代码的时候出错,但是如果不优化代码,性能很差。如何让编译器不优化一段代码? 一般发布的软件都会选优化代码,点击属性选择生成就可以看到优化代码 ? 假如有方法 Foo ,这个方法里面写了一些特殊代码,不想让编译器优化,那么可以如何做? 有一个特性,可以让编译器不优化这段函数,这个特性就是MethodImpl [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/win10-uwp-%E7%A6%81%E6%AD%A2%E7%BC%96%E8%AF

    65320发布于 2019-03-13
  • 来自专栏全栈程序员必看

    代码优化

    在写系统的i2c driver的时候,从參考板拿来一份轮询的driver sample,改完之后就直接提交代码到系统库,主要的測试都没有问题,一直到系统级别測试,发现和其它系统的交流的某个task A偶尔会 monitor log里面发现当task A timeout的时候,i2c driver task占用CPU百分比非常高,而i2c driver task仅仅是简单的读取操作,并且读取次数也不多,细致查看轮询代码 第二个问题就更有意思u时候遇到的,折腾了近1个月,在系统的end to end測试中,发现一旦Call的数目上去之后,有一个task的CPU使用率过高,有怀疑过硬件性能不行,也有怀疑过系统压力过大,最后还是看代码看到一个有意思的地方 一看到三重循环就非常紧张,每次task运行就是368*3*2次循环体,谨遵循环优化办法:把推断条件能外移的外移,同一时候也把code里面的除法都改成了移位操作。CPU使用过高问题得到解决。 3. 所以系统级别的測试希望手机ftp的速率能够上到3.1mpbs,结果整个系统一直处于崩溃状态,找高通询问他们芯片的处理能力,找自己系统的代码处理能力瓶颈,最后发现overhead没考虑,所以才会出现系统负载只是来的情况

    59440编辑于 2022-07-12
  • 来自专栏同步文章

    代码优化

    今天组长闲着没活干就审核我们的代码 因为我写的代码是比较完美的 也算是鸡蛋里挑骨头吧 主要下面几个问题 组长:springmvc spring 的bean生成模式 一般都是采用默认的单例模式 所以不要随意把变量定义成类变量

    27740编辑于 2023-10-12
  • 来自专栏Python与算法之美

    10,模型的优化

    搜索超参数空间以优化超参数需要明确以下方面: 估计器 超参数空间 交叉验证方案 打分函数 搜寻或采样方法(网格搜索法或随机搜索法) 优化模型的常见方法包括 网格搜索法,随机搜索法,模型特定交叉验证, 信息准则优化。 使用网格搜索法或随机搜索法可以对Pipeline进行参数优化,也可以指定多个评估指标。 ? ? 三, 模型特定交叉验证 一些特定的模型,sklearn构建了一些内部含有交叉验证优化机制的估计器。 它们主要是在linear_model模块。 linear_model.LassoLarsIC 采用了信息准则进行优化

    77421发布于 2020-07-17
  • 来自专栏Java知识点

    10章_索引优化与查询优化

    关联查询优化 # 3.1 数据准备 # 分类 CREATE TABLE IF NOT EXISTS `type` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `card` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`bookid`) table teacher( ID bigint unsigned primary key, email varchar(64), ... )engine=innodb; 讲师要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句 # 9.2 前缀索引对覆盖索引的影响 结论: 使用前缀索引就用不上覆盖索引对查询性能的优化了,这也是你在选择是否使用前缀索引时需要考虑的一个因素。 # 10. 我们的前提是 “业务代码已经保证不会写入重复数据” 的情况下,讨论性能 问题。如果业务不能保证,或者业务就是要求数据库来做约束,那么没得选,必须创建唯一索引。

    83830编辑于 2023-08-02
  • 来自专栏程序生涯

    juqery代码优化

    伴随着精简代码和使用链式的同时,可能带来代码的难以阅读。 // 糟糕 $('.someclass :radio'); // 建议 $('.someclass input:radio'); 优化选择符 例如,Id选择符应该是唯一的,所以没有必要添加额外的选择符 必要时组合jQuery和javascript原生代码 如上所述,jQuery就是javascript,这意味着用jQuery能做的事情,同样可以用原生代码来做。 原生代码(或 vanilla)的可读性和 可维护性可能不如jQuery,而且代码更长。但也意味着更高效(通常更接近底层代码可读性越差,性能越高,例如:汇编,当然需要更强大的人才可以)。 牢 记没有任何框架能比原生代码更小,更轻,更高效(注:测试链接已失效,可上网搜索测试代码)。

    76440发布于 2020-08-14
  • 来自专栏产品能力

    GPT代码优化

    align-items: center; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); border-radius: 10px --此处写代码-->

    上向下发生渐变
    左到右发生渐变</div

    57830编辑于 2023-05-03
  • 来自专栏腾讯云代码分析

    代码优化】信创迁移优化

    所以在信创迁移的过程中需要将代码修改为跟目标架构CacheLine对齐,从而带来性能的提升。 编译选项优化 编译选项优化是针对编译器的特定配置项进行调整,以获得更好的编译结果和目标代码的质量。同样,针对ARM64架构,可以通过调整编译选项来直接提升性能。 比如-march=armv8-a 选项是用于指定GCC生成代码的目标CPU架构为ARMv8-A架构。 当在ARM64机器上使用-march=armv8-a选项编译时,GCC将会针对这个目标CPU架构进行一些优化(比如使用SIMD指令集来实现单个指令中执行多个数据操作,从而提高代码的执行速度)。 启用规则包 ▼ 分析方案 -> 代码检查 -> 【C/C++】信创迁移优化规则包/ 【C/C++】强化信创迁移优化规则包-> 启用/查看规则 注:【C/C++】强化信创迁移优化规则包由TCA独立工具支持

    51810编辑于 2024-09-27
  • 来自专栏JAVA

    JAVA代码优化,接口优化,SQL优化 (小技巧)

    具体代码如下: ExecutorService threadPool = new ThreadPoolExecutor( 8, //corePoolSize线程池中核心线程数 10, / 说实话,Java代码优化是一个比较大的话题,它里面可以优化的点非常多,我没办法一一列举完。在这里只能抛砖引玉,介绍一下比较常见的知识点,更全面的内容,需要小伙伴们自己去思考和探索。 2. sql优化 如果优化了索引之后,也没啥效果。 接下来试着优化一下sql语句,因为它的改造成本相对于java代码来说也要小得多。 这时可能是代码中开启了连接忘了关,或者并发量太大了导致的,需要做进一步排查和系统优化。 但众所周知,我们在代码中,每次远程请求数据库,是会消耗一定性能的。而如果我们的代码需要请求多次数据库,才能完成本次业务功能,势必会消耗更多的性能。 那么如何优化呢?

    70910编辑于 2024-11-20
  • 来自专栏公众号:程序员白楠楠

    代码优化大盘点:35 个 Java 代码优化魔鬼细节

    前言 代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗? 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来, 代码优化的目标是: 减小代码的体积 提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。 10、当复制大量数据时,使用System.arraycopy命令 11、乘法和除法使用移位操作 例如: ? 比如我们用JDBC写一个insertStudentInfo方法,有10个学生信息字段要插如Student表中,可以把这10个参数封装在一个实体类中,作为insert方法的形参。

    72630发布于 2020-12-08
  • 来自专栏小徐学爬虫

    Cython优化Python代码

    使用 Cython 优化 Python 代码是一种常见的方式,通过将 Python 代码转译为 C 并编译,可以显著提高性能。 这个可执行文件可以比原始的Python代码运行得更快。使用Cython优化器。Cython优化器可以对Cython代码进行优化,以使其运行得更快。 Cython优化器使用各种技术来优化代码,例如内联函数、循环展开和常量传播。使用Cython并行化。Cython支持并行化,这可以让你在多核计算机上运行代码。 以下是用Cython优化Python代码代码示例:import numpy as npcimport numpy as np​def r(x,y): #distance between particles 然后,可以使用Cython优化器对Cython代码进行优化。最后,可以使用Cython并行化来在多核计算机上运行代码

    41710编辑于 2024-12-02
  • 来自专栏呼延

    代码优化的方法

    上一篇博客说到最近做了一个大一些的需求,等需求完成后代码非常的凌乱,自己重构(整理了一波),在整理过程中,有一点对于如何优化代码的想法,特此记录一下。 这里说的优化,是指完成了杂乱的代码后,重现让它更合理,更干净一些,并不是在编程开始前的设计优化,因此不着重于设计模式等的使用。 在代码的review过程中,推荐使用一些gitlab,gerrit等工具来查看自己的代码,因为git工具会将你的代码改动更加直观的展示出来,而在编译器中,我们看到的更多是整体的代码,容易分散注意力。 程序本身的提高 思考需求本身,优化设计 这一步其实很重要,因为好的设计可从根本上提高代码的质量,但是因为过于有“个性”,每个项目都有自己适合的设计,无法具体分析。 我们的代码真的可以称得上是面对对象吗? 我不确定,我今天才发现这一点,那我以往的代码应该有很多犯了类似的错误了。

    1.1K20发布于 2019-07-01
  • 来自专栏SnailTyan

    Python代码性能优化

    但正因为如此,导致实现同一功能时,Python代码有很多写法,但不同的写法有不同的性能。因此写Python代码要有良好的习惯,多写高性能的代码。 作者原来平常写Python代码也很随意,直到某天处理大量数据时半天看不到结果,究其原因,是Python代码的性能问题导致的。 1. 列表解析与列表重建 #! 测试代码: #!

    1.3K80发布于 2017-12-29
  • 来自专栏RayFu

    JavaScript代码优化之道

    图片我们先引入一句话:代码主要是为了写给人看的,而不是写给机器看的,只是顺便也能用机器执行而已。代码和语言文字一样是为了表达思想、记载信息,所以写得清楚能更有效地表达。 本文多数总结自《重构:改善既有代码的设计(第2版)》我们直接进入正题,上代码!提炼函数what将一段代码提炼到一个独立的函数中,并以这段代码的作用命名。 where如果需要花时间浏览一段代码才能弄清楚它到底要干什么,那么这时候就应该将其提炼到一个函数中,并根据它所做的事命名。以后再读这段代码时,一眼就能知道这个函数的用途。 该行为可能会被质疑,因为它会迫使你执行两次甚至多次循环,实际情况是,即使处理的列表数据更多一些,循环本身也很少成为性能瓶颈,更何况拆分出循环来通常还使一些更强大的优化手段变得可能。 function regularCharge() { return quantity * plan.regularRate + plan.regularServiceCharge;}// 进一步优化

    68730编辑于 2022-08-15
  • 来自专栏编程文青李狗蛋

    循环代码优化技巧。

    00.写在之前 「代码优化」应该是我们时刻记在心里的一件事情,从一开始就建立一种正确的编程观念,养成一种好的编程习惯,避免一些低效弱智的做法。 虽然现在计算机越来越快,内存越来越大,很多人会觉得一顿操作猛如虎之后可能才优化了 1 s,实在太微不足道了,但是可别忘了,你以后编的程序可不是给你一个人用的,可能是服务器程序,你这个慢 1 s,一天来个百万次千万次的请求 关于如何在循环上考虑优化代码,就是下面我要介绍的内容。 01.循环代码优化 技巧 1:减少循环内部不必要的计算 什么算是不必要的计算,就是指那些无论放在循环里面还是放在循环外面都不会改变程序运行结果,对于这样的能放到循环外面的一定要放到循环外面。 ,输出的结果如下所示: after 耗时 1.914416790008545 相比较可以发现,同样一个结果的代码,只是一个简单的变化,代码的效率就提高了 20%。

    1.1K10发布于 2019-07-24
  • 来自专栏面朝大海春暖花开

    js代码优化

    自作聪明过头了,老大一看,就说你这写的不够完善,还需要优化下。 蒙了,啥玩意。 回调方法时写死的。需要灵活支配。 在不影响源代码的基础上可以进行修改。要不就新增 。。。

    1.4K20编辑于 2022-05-06
领券