首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏项目文章

    Java性能优化学习2:性能优化切入点(上)

    性能优化的七类技术手段 性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。 技术优化一般有七类技术手段。 性能优化的重点是在照顾性能的前提下,达到资源利用的最优状态。 1、复用优化 写代码的时候,一般一个方法函数用的多的话,我们就会设置成公共的方法,这就是复用的意思,以后直接调用就可以了。 类似的,也有对于对象的池化操作,比如数据库连接池、线程池等,在 Java 中使用得非常频繁。 2、计算优化 (1)并行执行 ①多机集群:采用负载均衡的方式,将流量或者计算拆分多个部分,比如说hadoop、mapreduce。 例如Go,有更加轻量的:协程,但目前在java中协程并不是十分成熟。 (2)同步-》异步 异步的编程方式可以支持横向扩容,缓解瞬时压力。

    20710编辑于 2024-06-07
  • 来自专栏项目文章

    Java性能优化学习2:性能优化切入点(下)

    性能优化的七个点 性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。 技术优化一般有七类技术手段。 现实开发中的性能问题,和锁有关的是非常多的,比如说数据库的行级锁,表锁,java中的各种锁等等,在底层操作系统中,还有 CPU、操作系统的锁等等。 例如java可以使用netty进行开发等等,还可以选择一些好的语法分析器如JavaCC,效率就会比正则表达式高一些。 7、JVM优化 JVM优化需要注意的点特别多,因为JAVA会很大程度上受到JAVA的制约,对JVM虚拟机进行优化,如果参数优化不当,会造成OOM等比较严重的后果。 CMS已经在JAVA14中移除,因为GC时间不可控制。

    22010编辑于 2024-06-07
  • 来自专栏YoungGy

    优化2】整数优化

    或的逻辑约束 三个选择的或 只有才 更多或 整数可除 多边形组合 固定花费 分段线性 组合型 set covering set packing 食堂定位 地图填色 Julia例子 9数独 概述 整数优化就是线性优化 x1被选中当且仅当x2被选中。 x2或x3被选中,可以都被选中。 x2或x3被选中,不可以都被选中。 对应的IP约束为: x1-x3<=0 x1+x5<=1 x1-x2=0 x2+x3>=1 x2+x3=1 或的逻辑约束 或的逻辑问题,可以用用bigM方法去解决,其思想是通过添加新的变量,将部分约束变成多余的 例如,对于问题 [图片] 或 [图片] (两者可以都出现),y1、y2的定义域是[0,5]。 and column j to j+2 @constraint(m, sum{x[r,c,k], r=i:i+2, c=j:j+2} == 1) end for i = 1:9, j = 1:

    1.8K50发布于 2018-01-05
  • 来自专栏Vincent-yuan

    java之struts2的action优化配置

    struts2提供了两种方案来解决这个问题。一种是动态方法调用,另一种是使用通配符来配置Action。 这里只讲使用通配符的方式来配置Action.

    50220发布于 2019-09-11
  • 来自专栏mathor

    枚举+优化(6)——双指针优化2

    ans ans = s } } } print ans  这个算法的时间复杂度是O(NML),NML是三个数组的长度,最大值都是10万,显然会超时 优化 第二个数组是1,2,4,5,10,13,第三个数组未知,什么清空都有可能。 ); } cout << ans; return 0; } 例4.题目链接:hihoCoder1607 思路  一般的暴力枚举这题肯定是过不了的,数据量太大,那我们就要想办法优化

    61850发布于 2018-06-19
  • 来自专栏java学习java

    延时队列优化2

    看起来似乎没什么问题,但是在最开始的时候,就介绍过如果使用在消息属性上设置TTL的方式,消息可能并不会按时“死亡“,因为RabbitMQ只会检查第一个消息是否过期,如果过期则丢到死信队列, 如果第一个消息的延时时长很长,而第二个消息的延时时长很短,第二个消息并不会优先得到执行。

    1.8K30编辑于 2022-11-13
  • 来自专栏技术杂记

    Mysql 优化存储2

    可以打印出差异的部分,我们就是通过有无差异的记录条目来确认一致性 从结果来看,是空的,说明主备数据是一致的 Note: 此时指定的host要是slave,也就是待检查的对象 ---- 停止复制 在待优化的 status\G mysql> stop slave; 停止复制后,最好再使用一个文本记录一下当前的position,以避免窗口信息丢失后,又执行了reset slave命令产生不良后果 ---- 生成优化语句

    52310编辑于 2022-03-21
  • 来自专栏tea9的博客

    优化android程序2

    数据库缓存 存到本地数据库以便管理 android的本地数据是SQLite 一个高速的文本数据库 使用这种方式有两种好处 1.客户端可以快速的从本地数据库获取数据 就算偶尔出现网络中断,我们也可以看到信息 2.

    27120编辑于 2022-07-16
  • 来自专栏java一日一条

    Java优化

    2. Java对象头 锁存在Java对象头里。如果对象是数组类型,则虚拟机用3个Word(字宽)存储对象头,如果对象是非数组类型,则用2字宽存储对象头。 Java SE1.6为了减少获得锁和释放锁所带来的性能消耗,引入了“偏向锁”和“轻量级锁”,所以在Java SE1.6里锁一共有四种状态,无锁状态,偏向锁状态,轻量级锁状态和重量级锁状态,它会随着竞争情况逐渐升级 另外,JVM对那种会有多线程加锁,但不存在锁竞争的情况也做了优化,听起来比较拗口,但在现实应用中确实是可能出现这种情况,因为线程之前除了互斥之外也可能发生同步关系,被同步的两个线程(一前一后)对共享对象锁的竞争很可能是没有冲突的 下图中的线程1演示了偏向锁初始化的流程,线程2演示了偏向锁撤销的流程。 经过调查,目前只是通过汇编暂停了几个CPU周期,除了自旋周期选择,HotSpot还进行许多其他的自旋优化策略,具体如下: 如果平均负载小于CPUs则一直自旋 如果有超过(CPUs/2)个线程正在自旋,则后来线程直接阻塞

    1.1K10发布于 2018-09-14
  • 来自专栏mathor

    枚举+优化(4)——哈希表优化实例2

    例3.四平方和 思路1:枚举abcd,判断a^2^+b^2^+c^2^+d^2^是否等于N  分析规模  a:0 ~ sqrt(500000 / 4)  b:0 ~ sqrt(500000 / 3 =10^8^ 思路2:枚举abc,判断N-a^2^-b^2^-c^2^是不是完全平方数  分析规模  a:0 ~ sqrt(500000 / 4)  b:0 ~ sqrt(500000 / 3)  c:0 ~ sqrt(500000 / 2)  总枚举量10^9^,依然超时 问题:只枚举ab,那么余下R=N-a^2^-b^2^,能否快速求出c^2^+d^2^=R的解? 这里哈希表就派上用场了,我们可以预先求出R=c^2^+d^2^的解,用一个unordered_map<int ,int> f来保存一个R对应的c  比如f[5]=1,表示R=5的解是c=1,d=2可以由 } 第一次作业  先说说的思路,当时看到这题有点懵,可能还是对哈希算法掌握的不够,怎么都想不到用哈希的方法去做,索性先写了个O(N^2^)的两重循环,想着这几天学的优化,都是减少循环层数,总共就两层

    82450发布于 2018-06-08
  • 来自专栏大数据平台TBDS

    Hiveserver2 性能优化与GC优化

    这种故障对应于上面介绍的“故障现象1”,通过jdbc无法正常连接到hiveserver2。为了解决该故障,可以通过优化内存GC可以缓解hiveserver2的GC卡死问题。 以下是hiveserver2发生卡死,jdbc无法连接到hiveserver2的时候,统计GC的结果: 可以看到,当hiveserver2发生严重卡死时,也就是hiveserver2 进程发生严重GC 因此,可以通过优化hiveserver2的内存GC来优化hiveserver2,使之支持更高的并发、能够执行更复杂的sql任务。 因此,将hiveserver2迁移到资源非常空闲的另外一台服务器。 4.2 采用优化GC机制和参数 之前hiveserver2进程的启动参数没有添加GC参数,也就是说采用系统默认的GC机制。 经过上面两种优化方法之后,hiveserver2目前非常稳定。当然基于hadoop平台的hiveserver2本身支持的jdbc并发连接数有限,不可能做到关系型数据库那样的oltp高并发性能。

    6.4K103发布于 2018-06-19
  • 来自专栏JAVA

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

    这里写目录标题 第一章:Java中代码优化的30个小技巧 1.用String.format拼接字符串 不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情况。 (ArrayList.java:851) at com.sue.jump.service.test1.Test2.main(Test2.java:24) 这种在foreach循环中调用remove方法删除元素 :108) at com.sue.jump.service.test1.Test2.main(Test2.java:24) 会直接报UnsupportedOperationException异常。 说实话,Java代码优化是一个比较大的话题,它里面可以优化的点非常多,我没办法一一列举完。在这里只能抛砖引玉,介绍一下比较常见的知识点,更全面的内容,需要小伙伴们自己去思考和探索。 2. sql优化 如果优化了索引之后,也没啥效果。 接下来试着优化一下sql语句,因为它的改造成本相对于java代码来说也要小得多。

    68610编辑于 2024-11-20
  • 来自专栏ros--转载

    java 2

    我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作MySQL数据库似乎缺乏趣味性,毕竟每天都在写SQL语句。 如果你对任何内容有任何疑问,请点击以下官方文档链接查看更多信息:https://dd.ma/MyPFQFMD要进行模糊查询,可以直接使用text文字进行查询,或者定义过滤字段来进行查询优化。 总的来说,相比Java,Python的SDK使用起来更加舒适。如果你曾经使用过Java SDK与平台接口对接,就会发现Python SDK上手更快。jaba

    20710编辑于 2023-11-30
  • 来自专栏IMWeb前端团队

    webpack2 终极优化

    webpack2增加了一些新特性也正式发布了一段时间,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。 优化输出 打包结果更小可以让网页打开速度更快以及简约宽带。 可以通过这以下几点做到 压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader? 这样就可以优化支持tree-shaking的库。 优化开发体验 优化开发体验主要从更快的构建和更方便的功能入手。

    1.5K110发布于 2018-01-08
  • 来自专栏ThoughtWorks

    性能优化那些事儿(2

    不管是新系统还是老系统,也不管是上线前还是上线后,做性能优化都要遵循两原则三步骤: 两原则:不去优化没有测试的软件(单元测试要有,不然优化出了bug都不知道)、不去优化你不了解的软件 三步骤:测试、分析 用第二步得到的吞吐量执行 5 分钟,然后在第四步得到的极限值执行 1 分钟,再回到第二步的吞吐量执行 5 分钟,再到第四步的权限值执行 1 分钟,如此往复个一段时间,比如 2 天。 2)Linux中Swap强烈建议关闭,打开坏处多于好处,会有意想不到的问题。3)高流量的应用需要注意网卡中断问题,使用CPU亲和性绑定网卡。 2)锁竞争:单机环境下,锁的使用可能会带来大量的线程资源浪费,从而给系统带来性能开销;而分布式环境下,使用分布式锁也可能造成大量的请求堆积,影响整个系统性能。 需要着重强调的是任何的性能优化都得结合业务场景明确已知的性能问题和性能目标,不能为了优化优化

    39220编辑于 2022-03-04
  • 来自专栏IMWeb前端团队

    webpack2 终极优化

    webpack2增加了一些新特性也正式发布了一段时间,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。 优化输出 打包结果更小可以让网页打开速度更快以及简约宽带。 可以通过这以下几点做到 压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader? 这样就可以优化支持tree-shaking的库。 优化开发体验 优化开发体验主要从更快的构建和更方便的功能入手。

    82620发布于 2019-12-05
  • 来自专栏小狐狸说事

    B2主题优化

    B2主题优化 ---- 安装Opcache扩展 php在执行的时候需要每次都从磁盘读取文件信息,再编译成脚本,这个过程非常消耗时间,我们强烈建议您安装php的 opcache 扩展,用来缓存已经编译好的 如果您的站点流量非常非常大,您还可以CDN缓存您的页面,B2主题同样支持,这是其他主题做不到的。CDN缓存页面需要第三方的支持,如果您不懂请忽略。 但是以目前的互联网生态来说,压缩可以,合并是不推荐的,因为现代浏览器均支持 HTTP/2 协议,如果您的服务器开启了HTTP/2则不必合并css和js文件。 HTTP/2协议支持多个资源同时加载,这意味着您的多个css和js文件都可以同时加载,如果将他们合并成一个文件,加载渲染速度反而会变慢。 做了以上优化,还需要注意什么? 1、如果您是开发者,要对主题进行二次开发,请不要使用上面的优化,待开发完毕后再使用。 2、如果您开启了上面的优化,主题的一些设置项设置之后无法生效,请刷新缓存。

    96810编辑于 2022-11-17
  • 来自专栏腾讯IMWeb前端团队

    webpack2 终极优化

    webpack2增加了一些新特性也到了预发布阶段,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。 优化输出 打包结果更小可以让网页打开速度更快以及简约宽带。 可以通过这以下几点做到 压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader? 这样就可以优化支持tree-shaking的库。 优化开发体验 优化开发体验主要从更快的构建和更方便的功能入手。 要使用它你需要在执行webpack的时候带上--json --profile2个参数,这代表让webpack把构建结果以json输出并带上构建性能信息,使用如下: webpack --json --profile

    83620编辑于 2022-06-29
  • 来自专栏方丈的寺院

    存储优化(2)-排序引起的慢查询优化

    ORDER BY id DESC LIMIT 0, 10 play是抽奖记录表,sql是查抽中奖品的前10个大奖中奖者,来吸引其他用户参与抽奖,biz_id建了索引 例2 查询优化 业务侧避免此类查询 从业务侧分析,是不是需要此类查询。

    1.1K20发布于 2020-03-20
  • 来自专栏码代码的陈同学

    如何优化Java GC

    在第二篇 如何监控Java GC 中讲述了运行中的JVM如何进行GC,如何监控GC以及一些高效监控GC的工具。 本文将通过2个真实案例来演示一些你用得上的GC优化参数。 有必要优化GC吗? 确切的说是 基于Java的应用一定需要进行GC优化吗? 我认为并非所有基于Java的应用都需要进行GC优化,例如基于Java的系统有如下参数或行为: 已经通过-Xms 和 -Xmx 指定了内存大小 包含了 -server 参数 系统中未出现 超时 等日志 换句话说 GC优化的步骤 GC优化过程与一般的性能优化类似,下面是我进行GC优化的步骤。 监控GC状态 你需要监控和检查运行中系统的GC状态,监控方式请参考 如何监控Java GC 。 但是,如果你已经分配了10G Java内存,而且没有办法降低内存大小的话,就没办法进行GC优化了。在GC优化之前,你需要思考下为什么需要分配这么大的内存。

    1.4K81发布于 2018-07-08
领券