能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
能力说明:
掌握Linux文件管理方式和技巧,对用户和组管理有基本认知,掌握Linux网络知识,对TCP/IP协议及OSI七层模型有较为清晰的概念,掌握Linux磁盘与文件系统管理技巧,知道如何安装Linux软件包,逐步掌握Shell脚本的编程技巧。
暂时未有相关云产品技术能力~
CSDN博客专家,9年博主
数字人的视频我是使用的腾讯智影生成带绿幕的视频,要实现透明背景,有个很关键的信息需要知道,不是所有的视频格式(视频编码)都支持透明背景,首先我们最常用的mp4就是不支持(不管是h264还是h265)都不支持,目前支持透明背景的只有少部分视频编码,比如google的vp9(webm)格式,上图中我用就是webm+vp9编码的视频。实测这种视频兼容性也不行,比如在苹果的safari浏览器下,就无法透明背景。
虚拟线程是一种轻量化的线程封装,由jvm直接调度和管理。反之普通的线程其实是调用的操作系统的能力,对应的是操作系统级的线程。相对虚拟线程来说操作系统级的线程持有成本很高,而且受操作系统调度和管理的。实际在普通多线程情况下,如果出现IO阻塞,这个线程就必须得跟着阻塞,这个线程对应的操作系统就被阻塞,而他却持有大量的内存。另外,要处理大量的IO就得新建更多线程,而大量的线程会在操作系统调度时因上下文切换导致大量的CPU被浪费。
近期,我们线上遇到了一个性能问题,几乎快引起线上故障,后来仅仅是修改了一行代码,性能就提升了几十倍。一行代码几十倍,数据听起来很夸张,不过这是真实的数据,线上错误的配置的确有可能导致性能有数量级上的差异,等我说完我们这个性能问题你就清楚了。
以上就是javax.validation.constraints的基本用法和高级应用。通过掌握这个强大的校验框架,我们可以轻松地为Java项目实现数据校验功能,从而提高代码的健壮性和可维护性。
在Java编程中,处理null值一直是一个棘手的问题。错误的null处理可能会导致许多难以调试的运行时异常。自Java 8引入Optional类以来,它为我们提供了一种更优雅、更安全的方式来处理可能为空的值。在Java 8之前,程序员通常需要判断是否是null来避免NullPointerException,这导致代码会变得非常臃肿,而Optional类的诞生缓解了这个问题。Optional类是一个简单的容器,它可能包含某个值,或者也可能为空。它提供了一系列有用的方法来检查值是否存在,提取值(如果存在)或者提供默认值。
这篇文章总结了使用ChatGPT提升程序员编程能力的方法和场景。作者经过两个月的使用发现,虽然ChatGPT目前还无法完全替代程序员在一些强上下文的编程场景下的能力,但在一些通用化的编程场景下,它的表现仍然可行。作者提炼出以下利用ChatGPT的场景
最近在工作中遇到了一个需求,就是需要将两张图片拼接在一起,作为一个封面图。如果只是临时拼接一张,我们可以只用photoshop之类的图片编辑工具,将两张图片拼接在一起。而我们的需要是需要实现自动化,由于之前使用过ffmpeg做过图片的操作,于是搜索了下,ffmpeg确实能实现两张图片的拼接,这里分享下相关操作的命令行。
通过合理地监控和调优ThreadPoolExecutor,可以提高线程池的性能和可靠性,避免任务丢失或线程池崩溃的问题,并且可以提高应用程序的性能和可靠性。
上述命令将输入视频input.mp4转换为H.265编码格式,并将结果保存为output.mp4文件。其中,-c:v选项表示视频编码器,libx265表示使用x265编码器,-crf选项表示视频质量,28表示目标视频质量,值越小视频质量越高,文件体积越大。
在这个示例中,我们使用Parallel并行执行command1命令,并使用:::符号传递arg1、arg2和arg3参数。Parallel会自动将这些参数分成多个块,并并行地处理它们。您可以使用其他选项来控制并行度和资源利用率,例如–jobs选项来指定要并行执行的作业数量,–load选项来指定要使用的系统负载等等。
之前在工作中,有遇到需要程序化截取视频片段的场景,这里使用ffmpeg命令行就可以很容易实现,这里也记录下我们使用过程中遇到的坑,希望对大家也有所帮助。 举个例子,当我们要截取视频文件中input.mp4的第15秒到第98秒时,ffmpeg命令行可以这么写:
HLS (HTTP Live Streaming)是苹果推出的视频流协议,HLS格式的视频包含一个m3u8文本文件,以及众多的.ts的视频片段,而m3u8文本文件的作用就是将这些ts片段索引起来。 因为HLS协议是将视频切分成很多小的ts片段,这些小片段很适合放到cdn上,有很多视频文章都使用了hls格式传输视频。今天我在这里教大家如何用ffmpeg将mp4格式的视频转为HLS(m3u8)格式。
今天分享一个我制作表情包的技巧。现在视频编辑的门槛已经非常低了,只要装个剪映稍微学一下,很容易就能把你想要的内容剪出来,真的是有手就行。但是视频剪出来的视频是无法直接用做表情包的,只有gif格式的动图才是真正可以用的表情包。另外一点,在微信、企微等通讯软件中,gif动图的大小也是有严格限制的,比如微信和企微里最大是5MB,超过这个大小就会被当成文件传输,且无法被别人收藏转发,也就失去了表情包的意义。我这里分享一些用ffmpeg来生成gif动图的命令行示例,助力大家生产出更多有趣的表情包。
上面RequestWrapper的代码我查阅资料的时候在多篇博文中看到了,但是单有RequestWrapper还不足以完成整个请求,而且我看很多网络上的博客都是只在Interceptor中Wapper,但实际这样是不对的,而且也完全不需要,因为必须要替换掉整个请求链路中的Request才行。这里我们只需要在Filter中将普通的Request替换成我们自己的RequestWrapper
CacheLoader的作用就是为了在Cache中数据缺失时加载数据,其中最重要的方法就是load()方法,你可以在load() 方法中实现对应key加载数据的逻辑。在调用LoadingCache的get(key)方法时,如果key对应的value不存在,LoadingCache就会调起你在创建cache时传入的CacheLoader的load方法。
上面语法就是四则运算的巴科斯范式定义(EBNF),可能对初学者有点难理解,其实就是一个递归定义,一个表达式可能是有多个子表达式构成,但子表达式的尽头一定是数字。 antlr可以用EBNF所定义的规则,将某个输入串解析为一颗抽象语法树(AST)。我们以表达式((3+3)*(1+4))/(5-3) 为例
ffmpeg -f image2 -i %d.jpeg -vf scale=-1:480 output5.mp4 #-1表示比例缩放,也可-vf scale=640:-1固定宽度缩放高度
首先祝大家新年快乐,过年了,允许我水一篇博客。不知道大家都回老家了没,不过我是没有回去,晚上吃完年夜饭看到很多人发朋友圈,为了增进和大家的友谊,于是就想着给大家点个赞,无奈内容太多了,就搞个自动化脚本,原理和前两天我写的30行代码实现蚂蚁森林自动偷能量一样,这里不再赘述,直接上代码。
Github近期上线一个新的功能,就是你在自己账号下创建一个和自己用户名同名的仓库,并在仓库下创建一个README.md文件,这个文件就会被展示在你的Github个人主页。源于markdown的强大描述能力,你可以在你的Github首页展示各种各样的信息,甚至有人直接将自己个人简历挂上面,极大丰富了Github的可玩性。
当然这个bug的本质就是jdk11+zgc+StackWalker的bug,三者都是bug触发的必要条件,如果你能避免其中一条就可以完美避开这个bug了,比如升级到jdk12+,比如不用zgc……
作为一名工程师,面对上面的现象,你会怎么做? 我想你的第一反应肯定是业务代码有问题?是不是有什么地方导致内存泄露? 是不是业务代码里有什么地方加载的数据太多,越来越慢?…… 同事尝试过dump堆里的内容,dump jstak线程…… 都没看出来什么异常,也优化了业务代码里之前一些不合理的逻辑,始终没有解决问题。 当时的问题是他们都没有往热点代码的方向排查,主要是因为他们不知道有啥好用的工具。
然后对DFA的节点0执行步骤1,找到NFA中所有a可达的NFA节点(1#2#4#6#8#9)构成NFA中的节点1,如下图。
wrk是一款开源的高性能http压测工具(也支持https),非常小巧,可以执行文件只有3M(其中主要是luajit和openssl占用绝大多数空间),别看核心代码3-5年没更新了,但依旧非常好用。虽然很早之前我就知道有这么个工具了,当时学习这个工具的时候我还拿它压测了我们的个人网站xindoo.me,发现mysql性能不行后加了wp-cache,通过cache把我网站的承载能力提升了10多倍。但当时之前简单使用它的初级功能,最近工作中恰好有个http服务需要压测,然后就拿wrk做了。这次使用了wrk lua高级功能实现了压测,我们找到了我们服务的瓶颈,同时也被wrk的超高性能所震惊。
可以看出,在同等数据量的情况下,BloomFilter的存储空间和ln(fpp)呈反比,所以增长速率其实不算快,即便误判率减少9个量级,其存储空间也只是增加了10倍。
CPU分支预测本身是为了提升流水线下避免流水线等待的手段,其实本质上是利用了局部性原理,因为局部性的存在,大多数情况下这个技术本身给性能带来的是正向的(要不然它今天也不会存在了),所以我们大多数情况下都不需要关注它的存在,还是放心大胆的写代码吧,不要因为我们这篇博客就把所有的if改成?:三目运算,可能对代码可读性的影响远大于性能提升的收益。再次强调下,我今天只是构造了一个极端的数据来验证其性能差异,因为局部性的存在大多数情况下分支预测都是对的。
common searh封装了有些快速搜索的快捷方式,比如通过gh关键词快速搜索github上的内容。当然这个也可以通过alfred的web search也可以快速设置,这个workflow只是替你封装好了知乎、淘宝、掘金、github的快速搜索。
后来我跳槽后自己买了Macbook pro,在努力把笔记本打造成高效开发工具时,又重新发现了这个app,又毫不犹豫的购买了Powerpack,结合一些workflow,很多繁琐的工作变得非常简单,比如之前百度搜索一个东西,需要打开浏览器,然后打开百度,再输入要搜的词,再点搜索一套组合拳下来几十秒就过去了,有了Alfred 快捷键+触发词+搜索词+回车 几秒钟搞定。下图是我最近一月来每天的Alfred的使用频率,工作日平均每天有30+次的使用率。
学过计算机底层原理、了解过很多架构设计或者是做过优化的同学,应该很熟悉局部性原理。即便是非计算机行业的人,在做各种调优、提效时也不得不考虑到局部性,只不过他们不常用局部性一词。如果抽象程度再高一些,甚至可以说地球、生命、万事万物都是局部性的产物,因为这些都是宇宙中熵分布布局、局部的熵低导致的,如果宇宙中处处熵一致,有的只有一篇混沌。
fbprophet是facebook开源的时序数据预测包,提供了简洁的python和R api,可以对时序数据做一些预测,也提供了有些简单的趋势分析。更多细节可以看下官方文档。官方doc中给了一个数据集作为prophet的入门,这里我也只是按照官方的入门文档编写了的代码,很简单,只是把数据集换成了北京这8年来的每日温度数据,温度数我从网上爬取的,爬虫源码和数据可以从我github上找到。
我司内部有个基于jstorm的实时流编程框架,文档里有提到实时Topn,但是还没有实现。。。。这是一个挺常见挺重要的功能,但仔细想想实现起来确实有难度。实时流的TopN其实离大家很近,比如下图百度和微博的实时热搜榜,还有各种资讯类的实时热点,他们具体实现方式不清楚,甚至有可能是半小时离线跑出来的。今天不管他们怎么实现的,我们讨论下实时该怎么实现(基于storm)。
这个时候OpenTSDB就应运而生。 首先它做了数据存储的优化,可以大幅度提升数据查询的效率和减少存储空间的使用。其次它基于hbase做了常用时序数据查询的API,比如数据的聚合、过滤等。另外它也针对数据热度倾斜做了优化。接下来挨个说下它分别是怎么做的。
tsfresh.feature_extraction.feature_calculators.count_above_mean(x) 大于均值的数的个数
因为自己新建了一个应用,为了开发的速度,直接选用了springboot,但后来发现大部分读库的代码和同事已有的代码重复, 索性直接拿过来用。但问题是我已有的代码是通过纯注解的方式使用mybatis,同事代码是spring+xml来使用mybatis,经过几天的探索,发现一种两种方式结合使用的方法。
先跳转的该目录下,然后执行 sudo python setup.py install 然后就是各种问题,需要配置这个那个的。
本文介绍了优化IO密集型系统性能的三种主要策略——批处理、缓存和多线程,其工作原理和适用场景。
Spring作为一个优秀的企业级应用开发框架,不仅提供了众多的功能模块和工具,还提供了一种灵活高效的事件通知机制,用于处理组件之间的松耦合通讯。本文将详细介绍Spring的事件通知机制的原理、使用方法以及示例,希望对大家深入理解Spring框架有所帮助。
新手程序员在做设计时,因为缺乏经验,很容易写出欠设计的代码,但有一些经验的程序员,尤其是在刚学习过设计模式之后,很容易写出过度设计的代码,而这种代码比新手程序员的代码更可怕,过度设计的代码不仅写出来时的成本很高,后续维护的成本也高。因为相对于毫无设计的代码,过度设计的代码有比较高的理解成本。说这么多,到底什么是过度设计?
CyclicBarrier 是 Java 中的一种同步工具,它可以让多个线程在一个屏障点处等待,直到所有线程都到达该点后,才能继续执行。CyclicBarrier 可以用于协调多个线程的执行,以便它们可以在某个点上同步执行。
多图详解Redisson中RRateLimiter分布式限流的实现原理。
LinkedHashMap源码解析
Java中的String、StringBuffer和StringBuilder
局部性原理——各类优化的基石
一文告诉你CPU分支预测对性能影响有多大
布隆过滤器(BloomFilter)原理 实现和性能测试
ReentrantLock源码解析
ReentrantReadWriteLock源码解析
大厂面试题:求根号2简单?高级算法你肯定不会
Json字段选取器介绍和实现
生日悖论是啥?我用它省了上百G的内存
如何制作一个可以自动更新的Github个人主页