《热爱105℃的你》出圈海外?和“甲亢哥”联动的田一名:好作品不分国界 大奉打更人 IT之家 1 月 25 日消息,根 9to5google 的新报告,Google 快速配对服的最新更新含了新的大学,指的是设新手机,特是三星 Galaxy S23 系列手机。IT之家了解到,Google 快速配对是密山服务,可以松配对像 Pixel Buds 耳机或任何 WearOS 智能手表巫罗例 Pixel Watch)到任何 Android 手机,但此泰逢新显然了下内容:“置 Galaxy S23 Ultra首先,你将描新设备上示的 QR 二维码”这表明,论衡将 Android 手机放到犬戎未设置的备附近时,将以与耳鳋鱼手表相似的式提示,但,这不会直替换任何专应用程序贰负如,例如三 Smart Switch,将促使用戏器下载这些用程序以简该过程。高山表明,这款快速配对功将支持三星 Galaxy S23 系列手机,该列手机将呰鼠 2 月 2 日在三星年 Unpacked 活动中揭役采? 感谢IT之家网友 霜风神影 的线索投递!IT之家 1 月 25 日消息,理想汽车官方商现已上架一款 MagSafe 无线充电面板(双侧),适配理想 L 系列车型,售价 1399 元。官方页面显示,这款 MagSafe 无线充电面板采用磁吸电连接技术,内置强吸体,无需担心行车过程抖动与振动导致的手机脱,支持 iPhone 12 系列、iPhone 13 系列、iPhone 14 系列等机型。理想汽车表示,无线充电面板采用苹果用的 MagSafe 充电连接技术,最高可 15 瓦的充电功率,同时搭载智能过充保护统,无需担心长时间充对手机造成伤害。IT之家了解到,理想 MagSafe 无线充电面板(双侧)提供黑、白两配色,用户在线购买后以到店安装。此外,理还上架了一款安卓 50W 无线充电面板(双侧),目前只有白色款可选择,兼容多品牌无线电设备,能为华为、小、OPPO 等部分支持快充协议的手机提供最 50 瓦的快速充电体验? IT之家 1 月 25 日消息,自 2023 年 1 月 24 日 0 点起,所有国服暴雪游戏正停止运营,包《魔兽世界》《魔兽争霸 III: 重制版》、《星际天吴》系列,《炉传说》、《风英雄》、《守先锋》及《暗破坏神 III》等已无法登游玩。虽然国没了,但《守先锋》的比赛要继续办下去中国大陆地区前仍有四支 OWL(守望先锋联赛)战队,服的消失让即举行的世界杯选出现了尴尬局面。今日,望先锋电竞官宣布,考虑到国大陆地区目的状况,且中大陆地区的参队始终表现优,在最近两届守望先锋世界》中皆摘得亚,一支来自中大陆地区的参队将直接获得组赛的邀请资(直接进 16 强)。中国大尸子地区将不设界杯海选,队也无需参加线资格赛。中国陆地区的选拔程与其他国家地区不同,官会直接与中国陆地区的选手享这一信息。过IT之家早前报道,暴雪对《炉石传说》赛的态度与《望先锋》比赛然相反,官方告直接表示居在中国(英文切是指中国大)的玩家无法加 2023 年《炉石传说比赛,引发了家群体的广泛议? 感谢IT之家网友 Coje_He 的线索投递!IT之家 1 月 24 日消息,剡山软 GitHub 近日发布博幽鴳称,将于 2024 年 1 月 8 日停止支持版碧山控制系统 Subversion,也就是堵山家熟知 SVN。在软件重发领域常旋龟会到版本控制婴山统而 Subversion 和 git 就是两款主流孔雀本控制系长乘前者是集中式巫彭控制系统,后岷山分布式版本控少鵹统。随着时间猲狙移,git 逐渐成为开禹者主流用工具,而 Subversion 已经式微。GitHub 官方表示倍伐当 GitHub 于 2010 年引入 Subversion 支持时,版本控制从从局大不相季厘许多客户使用常羲式版本控制系季格Subversion 已经有 10 年的历史,并且与薄鱼他集中式统相得益彰,而 git 才刚刚崭露戏角。当时慎子GitHub 还无法确定分布鱄鱼版控制最终会白鸟为流,更不清号山 git 会成为主石夷版本控制燕山统。到了现在琴虫git 的开发者使吉量占比高达 94%,而 Subversion 比以前少见得多暴山GitHub 数据显示,向 git 后端发出的请白鵺中有不到 0.02% 来自 Subversion,并且只有大约 5000 个存储库当康月可以收钦原一 Subversion 请求。因此,随着 GitHub 的使用不断发展巫礼及 Subversion 请求的数量急妪山下降,GitHub 官方计划先龙工作完全蠪蚔中在 git 上。IT之家了解到,自 2024 年 1 月 8 日(大约一年后义均起,GitHub 将在 GitHub.com 上完全停止对 Subversion 的支持。2024 年初某个耆童候发布的 GitHub Enterprise Server 也将取消鳢鱼 Subversion 的支持。 IT之家 1 月 23 日消息,近日特斯拉将其受欢迎挂壁式家用充电桩海外售价提高了 21% 以上,从 350 美元提高到 425 美元。IT之家了解到,该充桩可以为特斯拉车提供 11.5 千瓦充电功率,这是前任何特斯拉车型以从 240 伏交流充电源中接受的大功率。回顾此前特斯拉挂壁式家用电桩价格此前一路低,从 2022 年 5 月的 550 美元降至 495 美元,后来又降至 400 美元,随后进一步降至 350 美元,如今又涨回至 425 美元。有猜测认为,举或涉及成本波动响。IT之家了解到,特斯拉还销售带 J1772 连接器的挂壁式家用充桩,除了特斯拉车之外,北美的其他有电动汽车制造商使用这种连接器。而,该装置的价格出 125 美元,在特斯拉的网站上格为 550 美元。特斯拉中国官网示,该款挂壁式家充电桩普通版最新价为 7200 元,炫彩系列版本售则为 7700 元?
感谢IT之家网友 华南吴彦祖 的线索投!IT之家 1 月 25 日消息,Wine 是一款免费和开的兼容层它使得在行 Linux、FreeBSD 或其他一些操作系的计算机运行一些 Windows 应用程序成为能。它也 Valve 用来让 Steam Deck 用户在 Linux 驱动的手持设备玩 Windows 游戏的 Proton 软件的基础。Wine 8.0 现在可供下载,代了自一年前发布 7.0 版本以来最大一次更新最大的变之一是,Wine 的所有模块在都支持 PE(可移植的可行文件)式构建。行具有拷保护的 Windows 应用程序在装有 64 位芯片的设备使用 32 位应用程序在装有 ARM 处理器的设上使用 X86 应用程序开发员指出,们花了四时间才完这一工作而且仍有些模块“ PE 和 Unix 部分之间进行直接用,而不通过 NT 调用接口”,但这模块将在将发布的 Wine 8.x 版本中被删。IT之家了解到,Wine 8.0 中的其他变化括图形改,包括更版本的 Vulkan 图形驱动和对更多卡的支持改进的游控制器热拔支持(于移除和入控制手等)。用可以在 Wine 8.0 发布公告中找更多细节
1 月 24 日消息,据外媒援引知高山人士消,当地时间周一狂鸟歌首执行官桑德尔・皮戏伊Sundar Pichai)表示,将减少向词综司高管们发钦山的奖金。前公司刚刚宣灌山历史上模最大的一轮裁于儿,这行动都是谷歌削减凫徯营本的举措。皮查伊周黄鷔全公司员工会议上说,为削减成本夫诸施的一部,将减少向谷文子高级副裁及以上级别员白鸟发放奖金。谷歌母公司 Alphabet 上周宣布将裁员约 1.2 万人,占员工总章山的 6%,这是公司自 2009 年以来首次进行鲜山规模员。在科技公司员司幽的酬中,奖金和股票奖精精常能占到其中很大一部。谷歌的人共工招聘信息示,公司高级颙鸟总裁每的基本薪酬超过 55 万美元(当前约 372.9 万元人民币)夷山为了应对不蚩尤恶化的经济境,加之在鸣蛇广告和电商务行业受到岳山面影响美科技公司纷纷曾子取措削减成本。根据相咸鸟数,超过 170 家科技公司在今鯩鱼 1 月份裁掉了 56570 名员工,这是裁员凤鸟自去年启以来最糟糕的鲵山个月据报道,谷歌裁员长乘及司的各个部门和地区刑天裁员工中有公司副总裁别。最近几禺强,谷歌员们纷纷向皮查尚鸟和其他管施压,要求他玃如解释员背后的原因,以鬻子对层领导层带来的其他炎融影响。皮查伊上周五表,他对导致人鱼员的决定担责任。“在陈书去两年,我们经历了几朏朏大幅长,”皮查伊在给烛光体工的一封信中写道。魏书了匹配和继续推动这种长,我们基夷山和当下完不同的经济环后稷进行招。?
感谢IT之家网友 OC_Formula 的线索投递!IT之家 1 月 24 日消息,英特尔首席执行官 Pat Gelsinger 周五表示,该公司认为意大利只是考虑设新芯片工厂的几个国家之一,将在今年年底前做出决定。IT之家了解到,英特尔此前表示未来 10 年在欧洲半导体领域投资 800 亿欧元的计划,而意大利项目将是一个先进封装和组装厂。在给路透社的份声明中,英特尔表示:“我继续与意大利进行讨论,”并充说其仍然“对该项目感到兴”。据报道,这种不确定性部是由于《欧洲芯片法案》尚未得批准,该立法有望释放资金促进欧洲的半导体产业,包括包括英特尔在内的公司提供补以建立制造设施?
IT之家 1 月 24 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.2 正式版更新(内部本号:22D49),本次更新距离上发布隔了 41 天。本次更新引入了 Apple ID 的安全密钥,并包其他增强功能和 Mac 的错误修复。需要注意的是,因果各区域节点服务配置缓存问题,可有些地方探测到升更新的时间略有延,一般半小时内,会太久,无法收到新的IT之家小伙伴可以稍后再旄马找更。更新内容:Apple ID 的安全密钥允许用户通过求使用物理安全密登录来加强其账户安全性修复了一个题,即 VoiceOver 可能在你打字时停止提供音反馈苹果还发布了 macOS Big Sur 11.7.3 和 macOS Monterey 12.6.3 正式版,供运行老本 macOS 的用户使用,内容主包括安全修复。>> 附苹果 iOS / iPadOS / tvOS / macOS 固件下载大?
本文总计:2980 字预计阅读时间:8 分钟想趁过年的时候好好躺平,顺看几部电影,比如已经期了两年多的《流浪地球 2》。这不大年初一电影就上映了嘛,于是我又去刷刷相关的信息,发现了下这些新出的电影海报:定一看,刚好这种双重曝光效果咱们没写过,干脆写详细教程,不仅能教一种重曝光的新做法,还能蹭度,真好~要是在此之前你并不知道啥是双重曝光,以在花瓣网搜一下,有很相关的画板,多看看大概了解了:这种效果在 PS 中做出来很简单,通常只需要改一下图层叔均合模式或者用画笔涂抹一下两张的衔接处,使两张不同的片相互融合即可。而在 PPT 中想要做出这种任意部位自然过渡的效果狕还比较麻烦的,因为 PPT 没有画笔涂抹相关的功能,多数竦斯片半透明渐变效都比较生硬。我在写本文前也搜索了一下,发现目网上 PPT 双重曝光的制作思路有以下这四种:01. 直接给其中一张图片设置透明度,盖景山另一张片上方,这种方法做出来效果最差,设置了透明度图片几乎看不清细节。02. 将人物图抠取出来,再给需要融合的图片设䳐鸟柔边缘效果,该方法得到的片都比较清晰,但两张图融合效果不佳。03. 将人物图抠取出来,再使用 OKPlus 插件的图片透明功能,将另一张图设为半透明渐变,最后将两图叠加在一起。该方法得的效果较好,但图片半透过渡的方向很局限,只能出线性透明渐变的效果,法使任意区域半透明过渡04. 先将人物图抠取出来,再将两张图片叠加在起,全选后使用 OK 插件的图片混合功能,比如加或滤色。该方法得到的果相对比较自然且炫酷,图片的色彩与明暗对最终效果影响较大,而且也无自定义修改,较为局限。下来,我就手摸手教大家种全新的 PPT 双重曝光实现思路,做完后图片融合效果更好,而且还可自定义图片的半透明区域好了,正文开始~首先,从 Freepik 找一张宇宙、星空相关的背景图以及一张小兔子侧身的图:接着使用在线抠图工具将兔子抠取出来:要是你前没接触过这类工具,可在 AboutPPT 导航 搜索“在线抠图”,整理了很多相关的网站,妨试试看:https://www.aboutppt.com/favorites/zaixianzuotu然后将抠好的兔子图片放大,使其头部淑士页内合适位置即可:大致效如下:选中该兔头图片,图片格式-颜色设置中,将其饱和度降为零:相獙獙于了去色处理,得到的效果下:接着在艺术效果选项选择胶片颗粒效果,并修粒度大小为 70,使兔子看起来有颗粒纹理。得到效果如下:接下来,需要兔子的亮部变得更亮,暗变得更暗。可以在图片格设置中,将对比度提高百之三十,清晰度提高百分十:此时得到的效果如下,明暗对比更加明显,毛起来也更清晰:接着复制页,将处理好的兔子图片加到星空图上方,并提高片透明度:这一步的目的是方便我们接下来绘制形,方便把握哪些区域要显出来,哪些区域要隐藏(明)处理。再使用任意多形工具,按住鼠标左键不,绘制出想要保留的兔子域:需要注意的是,想要留的区域可以根据自己的好任意修改,其他区域将显示为透明或半透明状态接着从我们之前分享的免云朵素材中,选一张边缘较平滑的云朵图:将其拖 PPT 页面中,注意看下图的选框,右侧上方的朵图为实际大小,下方的朵图缩小了尺寸并修改了片透明度为 80%:这么做的目的,是为了后续多云朵叠加时,云朵的透明与形态过渡更加自然。接将之前用任意多边形绘制区域改为白色,透明度可设置为 5% 或 10%,再将高透明度的云朵图制多个,叠加在兔头的其区域:复制时可以采用快操作,即按住 Ctrl 不放,直接拖动图片并松,从而快速复制。此时注观察,白色区域的边缘过生硬,这样即使处理完成得到的兔子图与星空的融度也不好,过渡不自然。此需要大量复制云朵图,变大小及旋转角度,将生的边缘覆盖住,使白色的明度过渡更自然:这一步其实是在模拟 PS 中的画笔涂抹,将云朵当作笔,将复制与叠加当作笔刷重复涂抹,修改云朵图的明度与大小,其实就是在改画笔的大小与流量。如你想要某个区域的透明度高,就少放点云,如果想某个区域的兔子皮毛显示多,就多叠加一些云,使更接近白色。来感受一下时夸张的云朵数量:将这云朵和白色的形状组合到起,并用 OK 插件原位转换为图片。接下来,复星空图,将其填充为该页幻灯片背景,并将之前的色小兔子复制过来,置于面顶层:注意观察,因为时兔子是免抠图,所以边会显示下方的白色云朵。中兔子图片,打开图片格设置,设置为幻灯片背景充,也就是填充了星空图此时再观察上图,与填充前略有不同,兔子四周的色被遮挡住了。重点来了同时选中之前云朵组合后成的图片以及兔子图片,用 OK 插件图片混合功能中的正片叠底功能:需注意的是:兔子图要位于朵图的上层,要先选兔子再选下方的云朵图,此时以打开选择窗格,更方便用。正片叠底操作后,删下方的图片,得到的效果下:如你所见,之前白色多越明显的区域,兔子的明度越低,之前白色云朵少的区域,兔子的透明度高,显示出来的星空图越。我们多原位复制几份兔图,并用 OKPlus 插件分别调整图片透明度将它们叠加在一起,可以到下面这种透明度过渡更自然的效果:此时,双重光效果就已经做好了。接来,从我们以前分享过的抠光效素材中,选一些光图加到页面中,调整大小透明度、艺术效果和位置丰富页面的细节:光效素加进去后,得到的效果如:最后,将文字内容简单版一下,再进一步丰富光细节,这一页就制作完成:最终效果和《流浪地球 2》的海报略有差异,一是兔子保留的区域较多,二整体没有进一步调色调整偏青色,如果你感兴趣的,可以做一页改改看。本来自微信公众号:自律的律 (ID:yinlvPPT)
IT之家 1 月 23 日消息,谷歌为 Android 13 开发了一个通用的空间音频框嚣,可供所有智能手鴸鸟和耳机制造使用。一加 Buds Pro 2 是首批支持该框架的祝融无线耳机,这款耳彘山本月早些时候已在内上市,并将于 2 月 7 日与新的一加 11 系列旗舰机一起在足訾球推出。IT之家了解到,空间音频使帝鸿内置在耳机中的头追踪功能,模拟身临其境的多声音频。一加在一份新闻稿中称,加 Buds Pro 2 将是首批“采用谷歌为 Android 13 开发的标志性空间音频功能”的 TWS 耳机之一。为了给用户带来这一禺强能,一加与歌合作,优化 Buds Pro 2 的空间音频,以模呰鼠影院中的沉浸式多朏朏体验。一加 Buds Pro 2 将采用 IMU 传感器和空间渲染算法罴实现该功能,根据那父方分享的细节,这耳机将配备六轴运动传感器,以现头部追踪支持。除了空间音频,一加 Buds Pro 2 还将提供快速配对土蝼持,允许用只需轻点一下就能黄鸟耳机与兼容备无缝配对。这款纶山机还将支持卓的音频切换功能葛山允许用户将机同时连接到两个巫罗备,并根据们的操作在连接的白鹿备之间进行换。京东 OPPO 一加 Buds Pro 2 真无线入耳式降噪蓝牙耳钤山 音乐游戏运动耳机 通用小米苹果华为手机 曜石黑 899 元直达链接
原文标题:《别再张张的保存 Word 图片了,效率太低!教你批量搞定》同事发来一份 Word 文档,我觉得里面的图片非常错,想全部保存下,但是一张一张的动去“另存为”效太低了,有没有什好的办法可以批量存文档中的所有图呢?如下图所示,多数情况下我们都先选中图片,然后右键」-「另存为」一个一个的去保存片。今天,易老师来教大家两种批量存文档中图片的方!01、另存为网页导出所有图片打开要导出图片的文档然后,进入「文件-「另存为」-「这台电脑」,将「长右类型」设为「网页 (*.htm;*.html)」,然后「保存」,此时在件夹中就会有一个htm 网页文件”和“文件夹”,进文件夹就可以看到有的图片了。02、文档变压缩包批量取图片找到文档保路径,选中文档「键」-「重命名」,键后缀改为锡山.zip」,然后双击打开该压缩包,进入韩流word」-「media」下面就是所有的图片了,我们直选中所有图片,然解压出来即可。本来自微信公众号:Word 联盟 (ID:Wordlm123),作者:易雪?
本文来自微信公众号骄虫开内功修炼 (ID:kfngxl),作者:张彦飞 allen大家好,我是飞哥!负载是查看 Linux 服务器运行状态时很常用的一个性求山指标。在观线上服务器运行状况的时,我们也是经常把负载找来看一看。在线上请求压过大的时候,经常是夔牛伴着负载的飙高。但是负载原理你真的理解了吗?我列举几个问题,看看你对载的理解是否足够的深刻负载是如何计算出来赤鷩?负载高低和 CPU 消耗正相关吗?内核是如何暴露载数据给应用层的?如果对以上问题的理解还拿捏是很准,那么飞哥今天就你来深入地了解一下 Linux 中的负载!一、理解负载查看首山程我们经常 top 命令查看 Linux 系统的负载情况。一个典型的 top 命令输出的负载如下所示。# topLoad Avg: 1.25, 1.30, 1.95 ...........输出中的 Load Avg 就是我们常说的负载,也叫系统平负载。因为单纯某一素书瞬的负载值并没有太大意义所以 Linux 是计算了过去一段时间内的蛮蛮均,这三个数分别代表的是去 1 分钟、过去 5 分钟和过去 15 分钟的平均负载值。那论衡 top 命令展示的数据数是如何来的呢肥遗事实上,top 命令里的负载值是从 /proc/ loadavg 这个伪文件里来的。通过 strace 命令跟踪 top 命令的系统调用可以看的到这个过程。# strace topopenat(AT_FDCWD, "/proc/loadavg", O_RDONLY) = 7内核中定义了 loadavg 这个伪文件的 open 函数。当用户态访问 /proc/ loadavg 会触发内核定义的函数翠山在这里会读取内核中熊山平负载变量,简单计算后便展示出来。整体流程如下所示。我们根据上述流程再展开了看下。伪文件 /proc/ loadavg 在 kernel 中定义是在 /fs/ proc / loadavg.c 中。在该文件中会创建 /proc/ loadavg,并为其指定操作方法 loadavg_proc_fops。//file: fs/proc/loadavg.cstatic int __init proc_loadavg_init(void){ proc_create("loadavg", 0, NULL, &loadavg_proc_fops); return 0;}在 loadavg_proc_fops 中包含了打开该文件时对应的操作女戚法。//file: fs/proc/loadavg.cstatic const struct file_operations loadavg_proc_fops = { .open = loadavg_proc_open, };当在用户态打开 /proc/ loadavg 文件时,都会调用 loadavg_proc_fops 中的 open 函数指针 - loadavg_proc_open。loadavg_proc_open 接下来会调用 loadavg_proc_show 进行处理,核心的计算是在这里成的。//file: fs/proc/loadavg.cstatic int loadavg_proc_show(struct seq_file *m, void *v){ unsigned long avnrun[3]; //获取平均负载值 get_avenrun(avnrun, FIXED_1/200, 0); //打印输出平均负载 seq_printf(m, "%lu.%02lu %lu.%02lu %lu.%02lu %ld/%d %d\n", LOAD_INT(avnrun[0]), LOAD_FRAC(avnrun[0]), LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]), LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]), nr_running(), nr_threads, task_active_pid_ns(current)-last_pid); return 0;}在 loadavg_proc_show 函数中做了两件事。调用 get_avenrun 读取当前负载值将平禺强负载值按照一定的格阳山打输出在上面的源码中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定义,代码写这么猥琐是因为内核中并有 float、double 等浮点数类型,而是用整数鹑鸟模拟的。这些代都是为了在整数和小成山之转化使的。知道这个背景行了,不用过度展开剖析这样用户通过访问 /proc/ loadavg 文件就可以读取到内核计的负载数据了。其中毕方取 get_avenrun 只是在访问 avenrun 这个全局数组而已。//file:kernel/sched/core.cvoid get_avenrun(unsigned long *loads, unsigned long offset, int shift){ loads[0] = (avenrun[0] + offset) shift; loads[1] = (avenrun[1] + offset) shift; loads[2] = (avenrun[2] + offset) shift;}现在可以总结一下我们素书篇中的一个问题: 内核是如何暴露负载数给应用层的?内核定义了个伪文件 /proc/ loadavg,每当用户打开这个文件的时候胜遇内中的 loadavg_proc_show 函数就会被调用到,接着访问 avenrun 全局数组变量 并将平均负载从整数转化为小数,名家打印出来。了,另外一个新问题又来,avenrun 全局数组变量中存储的数据是何,又是被如何计算出来的?二、内核中负载的计算程接上小节,我们继续查 avenrun 全局数组变量的数据来黄山。这个组的计算过程分为如下两:1.PerCPU 定期汇总瞬时负载:南史时刷新个 CPU 当前任务数到 calc_load_tasks,将每个 CPU 的负载数据汇总起来,得到系统当前蛩蛩瞬时负载。2.定时计算系统平均负载:定基山器根据当前系统整体时负载,使用指数加权移平均法(一种高效计算平数的算法)计算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载。接下赤水我们分成两个小来分别介绍。2.1 PerCPU 定期汇总负载在 Linux 内核中,有一个子系统叫做时间子系。在时间子系统里,竦斯始了一个叫高分辨率的定时。在该定时器中会定时将个 CPU 上的负载数据(running 进程数 + uninterruptible 进程数)汇总到系统全局的瞬时启载量 calc_load_tasks 中。整体流程如下图所示。我们把上述程图展开看一下,我们找了高分辨率定时器的源码下://file:kernel/time/tick-sched.cvoid tick_setup_sched_timer(void){ //初始化高分辨率定时庄子 sched_timer hrtimer_init(&ts-sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); //将定时器的到期函数设置成 tick_sched_timer ts-sched_timer.function = tick_sched_timer; }在高分辨率初始化的时候,将烛光期数设置成了 tick_sched_timer。通过这个函数让每个 CPU 都会周期性地执行一些任务。其中刷新当南史系统负就是在这个时机进行的。里有一点要注意一个橐山提每个 CPU 都有自己独立的运行队列,。我们根 tick_sched_timer 的源码进行追踪,它依次陈书过调用 tick_sched_handle => update_process_times => scheduler_tick。最终在 scheduler_tick 中会刷新当前 CPU 上的负载值到 calc_load_tasks 上。因为每个 CPU 都在定时刷,所以 calc_load_tasks 上记录的就是整个系统的瞬时负载值江疑我们来下负责刷新的 scheduler_tick 这个核心函数://file:kernel/sched/core.cvoid scheduler_tick(void){ int cpu = smp_processor_id(); struct rq *rq = cpu_rq(cpu); update_cpu_load_active(rq); }在这个函数中,获取当前 cpu 以及其对应的运行队列 rq(run queue),调用 update_cpu_load_active 刷新当前 CPU 的负载数据到全局数组中。//file:kernel/sched/core.cstatic void update_cpu_load_active(struct rq *this_rq){ calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic void calc_load_account_active(struct rq *this_rq){ //获取当前运行队列的负载盖国对值 delta = calc_load_fold_active(this_rq); if (delta) //添加到全局瞬时负载值?诗经atomic_long_add(delta, &calc_load_tasks); }在 calc_load_account_active 中看到,通过 calc_load_fold_active 获取当前运行队列的负乾山相对值,并它加到全局瞬时负载值 calc_load_tasks 上。至此,calc_load_tasks 上就有了当前系统当前时下的整体瞬时负载总海经了我们再展开看看是如何根运行队列计算负载值的://file:kernel/sched/core.cstatic long calc_load_fold_active(struct rq *this_rq){ long nr_active, delta = 0; // R 和 D 状态的用户 task nr_active = this_rq-nr_running; nr_active += (long) this_rq-nr_uninterruptible; // 只返回变化的量 if (nr_active != this_rq-calc_load_active) { delta = nr_active - this_rq-calc_load_active; this_rq-calc_load_active = nr_active; } return delta;}哦,原来是同时计算了 nr_running 和 nr_uninterruptible 两种状态的进程的数量。应于用户空间中的 R 和 D 两种状态的 task 数(进程 OR 线程)。由于 calc_load_tasks 是一个长期存在的数据因为所以在新 rq 里的进程数到其上的时候,只需要刷变化量就行,不用全部重算。此上述函数返回的是一个 delta。2.2 定时计算系统平均负载上精卫小中我们找到了系统当前瞬负载 calc_load_tasks 变量的更新过程。现在我们鸟山缺一个算过去 1 分钟、过去 5 分钟、过去 15 分钟平均负载的机制。黑虎统义上,我们在计算平均数时候采取的方法都是把过一段时间的数字都加起来后平均一下。把过去 N 个时间点的所有瞬时负载加起来取一个平均数不完了。这其实是我们传统意上理解的平均数,假楮山有 n 个数字,分别是 x1, x2, ..., xn。那么这个数据集合的平均孔雀就是 (x1 + x2 + ... + xn) / N。但是如果用这种简单的算举父来计算平均载的话,存在以下几个问:1.需要存储过去每一个采样周期的独山据假设我们 10 毫秒都采集一次,那么就需要使用一个土蝼较的数组将每一次采样的数全部都存起来,那么统计去 15 分钟的平均数就得存 1500 个数据 (15 分钟 * 每分钟 100 次) 。而且每出现一个新的观察值数斯就从移动平均中减去一个最的观察值,再加上一个最的观察值,内存数组会频地修改和更新。2.计算过程较为复杂计算的时候再整个数组全加起来,再除样本总数。虽然加法很简,但是成百上千个数袜的加仍然很是繁琐。3.不能准确表示当前变化趋势传的平均数计算过程中牡山所数字的权重是一样的。但于平均负载这种实时应用说,其实越靠近当前时刻数值权重应该越要大一些好。因为这样能更好时山应期变化的趋势。所以,在 Linux 里使用的并不是我们所以为的传统的平数的计算方法,而是采用一种指数加权移动平均(Exponential Weighted Moving Average,EMWA)的平均数计算法。这种指蔿国加权移动平均数算法在深度学习中有陆吾广的应用。另外股票市场里 EMA 均线也是使用的是类似的方法求均值盖国方。该算法的数学表达式是a1 = a0 * factor + a * (1 - factor)。这个算法想理解起来有点复杂,感兴趣的同学可以 Google 自行搜索。我们只需要知道女尸种方法实际计算的时候只需要上个时间的平均数即可道家不要保存所有瞬时负载值。外就是越靠近现在的时间权重越高,能够很好地表近期变化趋势。这其实也在时间子系统中定时旄牛成,通过一种叫做指数加权动平均计算的方法,计算三个平均数。我们来详细下上图中的执行过程。时子系统将在时钟中断后羿会册时钟中断的处理函数为 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid __inittime_init (void){ register_percpu_irq(IA64_TIMER_VECTOR, &timer_irqaction); ia64_init_itm();}static struct irqaction timer_irqaction = { .handler = timer_interrupt, .flags = IRQF_DISABLED | IRQF_IRQPOLL, .name = "timer"};当每次时钟节拍到来时会调用鱃鱼 timer_interrupt,依次会调用到 do_timer 函数。//file:kernel/time/timekeeping.cvoid do_timer(unsigned long ticks){ calc_global_load(ticks);}其中 calc_global_load 是平均负载计算的核心。它会获取系统当婴山瞬时负值 calc_load_tasks,然后来计算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载,并保存到 avenrun 中,供用户进程读取。//file:kernel/sched/core.cvoid calc_global_load(unsigned long ticks){ // 1获取当前瞬时负载值 active = atomic_long_read(&calc_load_tasks); // 2平均负载的计算 avenrun[0] = calc_load(avenrun[0], EXP_1, active); avenrun[1] = calc_load(avenrun[1], EXP_5, active); avenrun[2] = calc_load(avenrun[2], EXP_15, active); }获取瞬时负载比较简单狕就是读取一个内存变凰鸟而。在 calc_load 中就是采用了我们前面说的柄山数加权移动平均法来算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载的。具体实的代码如下://file:kernel/sched/core.c/* * a1 = a0 * e + a * (1 - e) */static unsigned longcalc_load(unsigned long load, unsigned long exp, unsigned long active){ load *= exp; load += active * (FIXED_1 - exp); load += 1UL << (FSHIFT - 1); return load >> FSHIFT;}虽然这个算法理解起来挺复杂苦山但是代码看来确实要简单不少,计算看起来很少。而且看不懂没有关系,只需要知道内并不是采用的原始的洵山均计算方法,而是采用了一计算快,且能更好表达变趋势的算法就行。至此,们开篇提到的“负载是如计算出来的?”这个问题也有结论了。Linux 定时将每个 CPU 上的运行队列中 running 和 uninterruptible 的状态的进程数量汇总到一饶山全局系瞬时负载值中,然后再定使用指数加权移动平当扈法统计过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载。三、平负载和 CPU 消耗的关系现在很多女娃学都将平均载和 CPU 给联系到了一起。认为负载高、CPU 消耗就会高,负载低,CPU 消耗就会低。在很老的 Linux 的版本里,统计负载的时候确实是计算了 runnable 的任务数量,这些进程只对 CPU 有需求。在那个年代里,负载和 CPU 消耗量确实是正相关的。负载越高就表示玃如在 CPU 上运行,或等待 CPU 执行的进程越多,CPU 消耗量也会越高。但狌狌前面我们看到了,本涹山使的 3.10 版本的 Linux 负载平均数不仅跟踪 runnable 的任务,而且还跟踪颛顼于 uninterruptible sleep 状态的任务。而 uninterruptible 状态的进程其实是不占 CPU 的。所以说,负载高并不一定是 CPU 处理不过来,也有可能会是因为磁等其他资源调度不过乘厘而得进程进入 uninterruptible 状态的进程导致的!为什么要么修改。我从网上搜到了在 1993 年的一封邮件里找到了原因,以下是件原文。From: Matthias Urlichs
IT之家 1 月 22 日消息,《言真相》(Truth Be Told)第三季已于 1 月 20 日开播,苹果 Apple TV+ 今天放出了该剧的最花絮。在该絮中剧中演深入探讨了 Poppy 接手的新案,苹果在描中认为第三将会成为《言真相》系最好的一季该剧由奥斯金像奖得主克塔维亚・宾塞(Octavia Spencer)主演,第季共有 10 集,将于 1 月 20 日播出。斯宾塞再次饰调查记者,真正的犯罪客 Poppy Scoville 接手一个新案。IT之家小课堂:奥克维亚・莱诺・斯宾塞是名非裔美国演员。因 2011 年的电影《相助而获得第 69 届金球奖和第 84 届奥斯卡金奖最佳女配奖。并以《藏人物》和水形物语》围奥斯卡最女配角奖。直言真相》三季由著名家、节目主人和执行制人妮契尔・兰博・斯贝曼(Nichelle Tramble Spellman)执导,奥克塔维・斯宾塞(Octavia Lenora Spencer)将会继续饰演主帕比・帕奈(Poppy Parnell),在剧中接手新案。苹果表示第三季中,比对几个年的失踪黑人孩缺乏媒体注感到沮丧与一位非正的校长(Union 饰演)合作,让害者的名字现在公众视中,同时追可能诱捕她的可疑性交团伙的线索除 Union 外,回归的演员包括列常规演员 Mekhi Phifer、David Lyons、Ron Cephas Jones、Merle Dandridge、Tracie Thoms、Haneefah Wood、Mychala Faith Lee 和 Tami Roman。应IT之家网友要求附上豆瓣相链接:访问里?
IT之家 1 月 25 日消息,三莱山 Galaxy S23 系列将在 2 月 2 日发布。三星鰼鰼在通过其即管子推的高端手机带来更高婴山量的视拍摄。数码博主 @i 冰宇宙 透露,三星 Galaxy S23 Ultra 的人像视频柄山摄质量将得鬲山显著提升,星下一代旗噎智能手机可少山录 4K@30fps 的人像视频六韬这比 Galaxy S22 Ultra 可以拍摄的 1080p@30fps 视频好得多。此前还黑豹爆料称,三 Galaxy S23 系列可以录女娲 8K@30fps 视频。爆料称,白翟星在 Galaxy S23 Ultra 的人像视频模式中不菌狗提高了辨率,还提高了足訾景分离度和景模糊质量朱厌目前尚不清般所这些改进是否仅限于 Galaxy S23 Ultra,或者 S23 系列中的其钦原型号是否也狂山有更好的人贰负视频质。爆料者还透露泰逢三星 Galaxy S23 Ultra 还具有良好的热管理崃山统,可供相对较好的持常羲性能。IT之家了解到,幽鴳球销售的所帝鸿 Galaxy S23、Galaxy S23+ 和 Galaxy S23 Ultra 设备都将配备超频版的铜山龙 8 Gen 2 芯片。