首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏labuladong的算法专栏

    谁能想到,求值的算法还能优化

    其实不然,其中的细节操作十分精妙,渐进时间复杂度肯定是 O(n) 无法再减少,但如果深究算法的执行速度,仍然有优化空间。 接下来,我们想办法优化这两个算法,使这两个算法只需要固定的1.5n次比较。 最大值和最小值 为啥一般的解法还能优化呢?肯定是因为没有充分利用信息,存在冗余计算。 PS:其实这个分治算法可以再优化,比较次数可以进一步降到 n + log(n),但是稍微有点麻烦,所以这里就不展开了。 如果可以利用分治解决问题,复杂度一般可以优化,比如以上两个问题,分治法复杂度都是1.5n,比一般解法要好。 其次,对于同时求最大值最小值的那个问题,怎么想到一次前进 2 步的呢? 如果你能明白这个递归关系(归纳假设),就有可能想到每次前进 2 步的优化解法。

    1.2K20发布于 2021-09-23
  • 来自专栏FREE SOLO

    谈谈MySQL优化方面的常用方法(详细)

    MySQL优化方法: 1.选取最适用的字段属性,可以的情况下,应该尽量把字段设置为NOT NULL 2.使用连接(JOIN)来代替子查询 3.使用联合来代替手动创建的临时表 4.增删改或者多条查询数据时使用事务操作 5.锁定表(代替事务的另一种方法) 6.使用外键(锁定表的方法可以维护数据的完整性,但它不能保证数据的关联性,应该使用外键) 7.可以优化SQL查询算法,提高查询速度 8.给数据量大的查询次数频繁而修改次数少的数据表添加索引 从根本处找出可以优化的地方,EXPLAIN的查询结果也会告诉你,你的索引主键被如何利用的,你的数据表是如何被搜索和排序的,通过对这些信息的查看,你可以对自己的查询语句做相应的调整 explain select UNIQUE ( `column` ) 全文索引 添加FULLTEXT ALTER TABLE `table_name` ADD FULLTEXT(`column` ) 6.利用查询缓存来优化查询

    2.3K40发布于 2019-04-19
  • 来自专栏程序猿DD

    完整的Explain总结,SQL优化不再困难

    紧随其后通过 show warnings 命令可以 得到优化后的查询语句,从而看出优化优化了什么 explain extended SELECT * FROM t1 where key1 = '11' 但是这里大家需要特别注意,查询优化器可能对涉及子查询的查询语句进行重写,从而转换为连接查询。 (index是从索引中读取的,而all是从硬盘中读取) ALL 熟悉的全表扫描 mysql> explain select * from t2; 一般来说,这些访问方法按照我们介绍它们的顺序性能依次变差 key列显示mysql实际采用哪个索引来优化对该表的访问。如果没有使用索引,则该列是 NULL。 这种情况下一般也是要考虑使用索引来优化的。

    1K20编辑于 2023-04-17
  • 来自专栏分布式|微服务|性能优化|并发编程|源码分析

    性能优化|讲的清楚的垃圾回收算法

    标记-清除分为标记和清除两个阶段,在标记阶段jvm会在需要回收的对象上面打上标记,标记阶段完成后,jvm开始执行清除动作,这个阶段会清除掉那些被标记的需要回收的对象。内存整理前后对比:黑色是存活对象,灰色是垃圾对象

    1.1K20发布于 2020-11-19
  • 来自专栏张戈的专栏

    小网站简单实用的动静分离优化方案

    这时,作为运维工程师或者架构师就会给出动静分离优化的建议了。 这样一来,图片等静态资源的访问就落到了新增的服务器上,从而分担了大部分访问数据流量和 IO 负载,我们还可以针对性的给静态资源 WEB 做一些优化,比如 JS/CSS/图片压缩、内存缓存、浏览器缓存等等 在《分享张戈博客的 WordPress 优化方案,缓解国内云服务器配置低下的问题》一文中,也是特别提到了这一茬。 这个在上文提到的优化方案一文中也着重提到,详细就不再赘述; 第 3 个好处:这个方案对于网站内容没法备案又想体验国内 CDN 加速快感的网站绝对是福音!

    2.8K80发布于 2018-03-26
  • 来自专栏Java后端技术栈cwnait

    详细的 MySQL 执行计划和索引优化

    不管是工作中,还是面试中,关于mysql的explain执行计划以及索引优化,都是非常值得关注的。 = ed.id; 图片 2.2,select_type 用于区分查询类型,是简单查询还是复杂查询 simple:简单查询,不包含子查询或者 union,如一条简单查询 primary:复杂查询的外层标记 ,即外层 select。 5.1,Order by 与 Group by 优化 根据最左前缀原则,中间字段不能断,所以只走了 name 索引字段。 优化方式和常见的优化差不多 EXPLAIN SELECT * FROM employees WHERE name= 'LiLei' AND position ='dev'order by age; 5.2

    1.5K22编辑于 2023-08-31
  • 来自专栏全栈程序员必看

    SQL优化干货总结 – MySQL(2020最新版)

    目录 前言 SELECT语句 – 语法顺序: SELECT语句 – 执行顺序: SQL优化策略 一、避免不走索引的场景 二、SELECT语句其他优化 三、增删改 DML 语句优化 四、查询条件优化 五、 建表优化 一张照片背后的故事(自娱角) ---- 有朋友疑问到,SQL优化真的有这么重要么? 如下图所示,SQL优化在提升系统性能中是:(成本最低 && 优化效果明显) 的途径。 正确使用hint优化语句 MySQL中可以使用hint指定优化器在执行时选择或忽略特定的索引。 使用select * 取出全部列,会让优化器无法完成索引覆盖扫描这类优化,会影响优化器对执行计划的选择,也会增加网络带宽消耗,更会带来额外的I/O,内存和CPU消耗。

    1K10编辑于 2022-07-22
  • 来自专栏Java技术栈

    Redis 牛实践:业务层面和运维层面优化

    我们在了解了导致Redis变慢的原因之后,针对性地优化,就可以让Redis稳定发挥出更高性能。 这篇文章我们就来总结一下,在使用Redis时的最佳实践方式,主要包含两个层面:业务层面、运维层面。 在开发过程中,业务层面的优化建议如下: key的长度尽量要短,在数据量非常大时,过长的key名会占用更多的内存 一定避免存储过大的数据(大value),过大的数据在分配内存和释放内存时耗时严重,会阻塞主线程 推荐使用读写分离,前提是可以容忍从节数据更新不及时的问题 写请求量很大时,推荐使用集群,部署多个实例分摊写压力 运维层面主要是DBA需要关注的,目的是合理规划Redis的部署和保障Redis的稳定运行,主要优化如下

    71240发布于 2020-09-22
  • 来自专栏IT大咖说

    史上详细的新浪广告系统技术架构优化历程

    基本上所有的公司的技术方案中都有一个adexchange——负责广告流量接入以及流量优化的模块(图中的中间模块)。 从上端过来的广告流量都会进行流量优化优化完成后将向下方的各个投放DSP询价。 对于广告系统来说监控方面关需注的有两点,一是系统状态实时监控与跟踪,二是业务数据实时分析与统计。系统实时状态不仅限定于物理机,还要关注qps和超时率以及请求花费的平均时间。 上下游的频繁调用带来的直接影响是带宽占用过大,处理时间的I/O占比高。 后来我们对最初设计的原型进行了改动,现在可以自动的根据流量特征来实现服务的合并。 ? 过去我们认为广告请求值得关注,但是在已做到前两个可扩展性的情况下,输入其实并不是问题,关键的还是系统的数据热点。 第二个要点是数据一致性,由于广告系统内部的数据量并不是很大,所以简单的做法是采用分级别的方式来给予保证。

    2K30发布于 2018-12-06
  • 算法之冒泡排序:直观的排序哲学与优化智慧

    二、Java实现(优化版) public class BubbleSort { // 基础版本 public static void basicSort(int[] arr) { swapped) break; } } 高手进阶: 并行化优化(OpenMP多线程分块处理) 混合排序策略(当数据基本有序时切换冒泡) 鸡尾酒排序实现(双向冒泡优化) // 鸡尾酒排序 true; } } start++; } } 六、哲学启示 冒泡排序教会我们: 耐心观察:通过多轮遍历逐步解决问题 简单力量:基础的算法也能蕴含深刻思想 优化智慧:提前终止机制体现效率意识 当你能在面试白板上5分钟写出优化版冒泡排序时,说明掌握了算法工程师的基本功——在简单中见真章。 记住:算法优化的本质是在理解问题特征后做针对性改进,就像这个优化版本通过检测交换状态提前终止不必要的遍历。

    25710编辑于 2025-10-14
  • 来自专栏北京马哥教育

    史上简单!冒泡、选择排序的Python实现及算法优化详解

    2、简单排序之冒泡法Python实现及优化 原理图 2.1、基本实现 2.2、优化实现 思路:如果本轮有交互,就说明顺序不对;如果本轮无交换,说明是目标顺序,直接结束排序。 优化,则可设定一个标记判断此轮是否有数据交换发生,如果没有发生交换,可以结束排序,如果发生交换,继续下一轮排序 最差的排序情况是,初始顺序与目标顺序完全相反,遍历次数1,... 原理图 3.1、基本实现 3.2、优化实现——二元选择排序 思路:减少迭代次数,一轮确定2个数,即最大数和最小数。 3.3、等值情况优化 思路:二元选择排序的时候,每一轮可以知道最大值和最小值,如果某一轮最大最小值都一样了,说明剩下的数字都是相等的,直接结束排序。 还可能存在一些特殊情况可以优化,但是都属于特例的优化了,对整个算法的提升有限。

    2.2K40发布于 2018-05-02
  • 来自专栏量子位

    如何优化ChatGLM-6B?一行代码就行 | “in”大模型

    大语言模型的应用与微调优化必要性 ChatGPT 的横空出世开启了大语言模型 (LLM) 的普及元年,BERT、GPT-4、ChatGLM 等模型的非凡能力则展现出类似通用人工智能 (AI) 的巨大潜力 基于英特尔® 架构硬件的微调优化方案 本文通过以下三个方面实现了基于第四代英特尔® 至强® 可扩展处理器的 ChatGLM 高效微调优化: 1、借助英特尔® AMX,大幅提升模型微调计算速度 AMX 是内置于第四代英特尔 可扩展处理器的内部集群 (cluster) 架构 为实现从应用程序代码到数据通信的整体简化,PyTorch 框架支持多种分布式数据并行后端 (backend),其中 MPI 后端方式能够很好地满足我们的优化需求 在英特尔® 至强® CPU Max 系列产品上,结合之前的两项优化,我们可以通过以下命令行启动 ChatGLM-6B 微调: △图 7. 在拥有 32 个物理核的英特尔® 至强® CPU Max 9462 双路服务器上启动微调 优化结果 通过以上简单软、硬件综合优化,无须采用昂贵的 GPU 硬件,即可实现对 ChatGLM-6B 模型的高性能微调

    68230编辑于 2023-09-08
  • 来自专栏凉风有信

    打造自己喜爱的 Windows10 —— 系统与软件配置优化

    # 前言 安装系统易,配置优化烦,但我有的是时间,为我喜爱的系统献上祝福 最终效果图 ? ? # 配置优化步骤 # 安装驱动 快捷键 win + i 打开 设置 ,在 更新与安全 - Windows 更新 里检查更新,等待驱动安装完毕重启系统 # 改用 Microsoft 账号登录 快捷键 win # 微软拼音设置 快捷键 win + i 打开 设置,依次选择 时间和语言 - 语言 - 中文简体的 选项 - 微软拼音的 选项 # 安装腾讯管家 新版的 腾讯管家 比较简洁,逐渐成为我优化电脑的首选软件 使用 电脑管家 优化一波,再重启 首页体检 ? 闪电杀毒 ? 垃圾清理 ? 深度清理 ? 插件清理 ? 系统盘瘦身 ? 电脑加速 ? 启动项 ? # 安装 360 压缩软件 为什么 360 压缩 ? 其它软件 Visio2016 Office2016 PotPlayer Chrome SwitchHosts Postman PanDownload Xshell6 ...... # 激活系统后的优化

    99920发布于 2020-10-23
  • 来自专栏Java快速进阶通道

    完整的Explain总结,妈妈再也不担心我的SQL优化

    完整的Explain总结,妈妈再也不担心我的SQL优化了 explain partitions 相比 explain 多了个 partitions 字段,如果查询是基于分区表的话,会显示查询将访问的分区 完整的Explain总结,妈妈再也不担心我的SQL优化了 table列 这一列表示 explain 的一行正在访问哪个表。 完整的Explain总结,妈妈再也不担心我的SQL优化了 const, system mysql能对查询的某部分进行优化并将其转化成一个常量(可以看show warnings 的结果)。 完整的Explain总结,妈妈再也不担心我的SQL优化了 ref 相比 eq_ref,不使用唯一索引,而是使用普通索引或者唯一性索引的部分前缀,索引要和某个值相比较,可能会找到多个符合条件的行。 完整的Explain总结,妈妈再也不担心我的SQL优化了 range 范围扫描通常出现在 in(), between ,> ,<, >= 等操作中。使用一个索引来检索给定范围的行。

    1.1K20发布于 2020-08-31
  • 来自专栏深度学习之tensorflow实战篇

    升级R简单直接的方法

    升级R一直是一件比较痛苦的事情,你需要先安装新的R,然后在逐一安装以前装过的包。最快的办法也是把以前的包文件夹拷到新的R中,然后在新的版本中运行包更新。由于官方的源一般都提供最新R版本的二进制文件,所以为了更好的稳定性一般也要跟着升级。所以这是一件相对痛苦又不得不做的事情。现在installr程序包提供了自动化升级的途径,你只需要回答几个问题就可以将R升级至最新版本,同时相应的程序包也会及时的得到更新。你需要做的只是: install.packages("installr") library(install

    2.3K130发布于 2018-03-16
  • 来自专栏青梅煮码

    vuex简单、详细的入门文档

    store.state.show"></el-dialog> </template> <script> export default {} </script> 是不是方便了许多 , 这就是 vuex 简单的应用

    1.3K50编辑于 2023-01-16
  • 来自专栏深度学习之tensorflow实战篇

    升级R简单直接的方法

    升级R一直是一件比较痛苦的事情,你需要先安装新的R,然后在逐一安装以前装过的包。最快的办法也是把以前的包文件夹拷到新的R中,然后在新的版本中运行包更新。由于官方的源一般都提供最新R版本的二进制文件,所以为了更好的稳定性一般也要跟着升级。所以这是一件相对痛苦又不得不做的事情。现在installr程序包提供了自动化升级的途径,你只需要回答几个问题就可以将R升级至最新版本,同时相应的程序包也会及时的得到更新。你需要做的只是: install.packages("installr") library(installr) updateR() 然后就会提示最新的R版本,和是否需要拷贝老版本的R程序包目录,是否需要移除老的程序包目录以及是否更新新的版本中的程序包。一切搞定之后会提醒你是否需要打开新的RGui,程序会默认将系统的默认R设置为最新版,因此RStudio也会自动切换到最新的R版本。下面是升级之后RStudio的启动提示 R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet" Copyright (C) 2014 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. 可以查看一下现在程序包里的库都是对应哪个版本的R编译的(图片见文章开头): pkgs<-installed.packages() plot(as.factor(pkgs[,'Built']),col=2:4,main='Packages built version',ylab='Count of packages') 可以看到大部分程序包都更新到了最新的R,但是还有不少还停留在大版本号3.1.0上,也有小部分还是3.1.11。总的来看,R的升级还是很成功的,使用起来也很方面。

    10.7K20发布于 2019-02-13
  • 来自专栏灯塔大数据

    大数据告诉你:北上广深,谁拼命!

    综合各项标准,北上广深四个城市中,北京人仍然是累的。 1上班里程 ? 4月,一项“吸血加班楼”的评选活动中,北京国贸地区、上海陆家嘴、深圳深南大道是这三个城市加班集中的地区,果然到了晚上热力不减。快节奏的大时代,每分钟都在翻天覆地变化着。 4出行时间峰值 ?

    1.1K130发布于 2018-04-04
  • 来自专栏WOLFRAM

    【求值】

    小编之前发送过关于两曲线相交的问题,同样对于初等函数来说,求值是一个十分重要并普遍的问题。

    74330发布于 2018-05-31
  • 来自专栏程序猿DD

    国内牛逼的大厂缓存架构和Redis优化操作!XX公司赢麻了……

    不知道今年最终公布的数据如何,可以想到的是,在大促之前各大公司对自己内部系统一定是做了大规模优化的,这里说的优化不是说单纯的增加云服务器,而是对系统的各个维度,比如: Java应用层,底层JVM,缓存层 这里面对缓存层的架构与优化尤为关键,很多同学可能平时工作上没机会接触,也可能系统并发压力很小,缓存用得也不多,但是缓存架构以及优化是高级资深工程师必备的技能,也是想进一线互联网公司的高薪技术。 最近我朋友诸葛老师会做一次关于大厂缓存架构Redis优化的分享课程《一线大厂Redis高并发缓存架构实战》,课程核心内容大家可以看下: 课程一共有三天时间,6月22号-6月24号每晚8点,让你对一线大厂 Redis高并发缓存架构有一个深度的理解,我之前已经看过,里面讲的很多缓存架构优化我已经用在公司项目里了,非常实用,强烈推荐! 直播带货导致线上商品系统崩溃原因分析 7、突发性热点缓存重建导致系统压力暴增问题分析 8、基于DCL机制解决热点缓存并发重建问题实战 9、Redis分布式锁解决缓存与数据库双写不一致问题实战 10、大促压力暴增导致分布式锁串行争用问题优化实战

    95410编辑于 2022-06-24
领券