当前位置: 首页 > news >正文

微信又被吐槽了,委屈啊

昨天的时候,一打开微博热搜榜,一看,微信又被吐槽了,微信占用存储这件事几乎年年会被骂,几乎也会年年被吐槽。

这次的起因呢,是一个人整理了一个方法:「微信内存从 126G 清理到 75G 我是怎么做到的」,这个话题讨论,随即就被推上了热搜榜,引来了新一轮的吐槽。

25eb0267b609d8957361beab7f88f4d6.png

微信占用存储这件事,不多说了,毕竟,说了大家也不相信。

要不还是多说一句吧,之所以占用存储是因为微信后端服务器不保存用户聊天记录,所以,聊天记录都存在了本地,用户的数据自己保存,安全自己负责。

其实,我想通过这个话题聊另外一件事,那就是移动端程序员的未来在哪里?

最近很多人都在转发一篇文章什么北京 IT 互联网崩盘了之类的。很多人就焦虑了,说我们移动端程序员是不是未来也崩盘了?未来到底在哪里呢?

咱聊未来之前,先从几个定律聊起。

首先是摩尔定律,我相信身处在互联网世界的我们,尤其是我们 IT 人士应该都了解过摩尔定律。

所谓的摩尔定律就是英特尔创始人之一戈登・摩尔的经验之谈,其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过 18 个月到 24 个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。

摩尔定律是内行人摩尔的经验之谈,汉译名为 “定律”,但并非自然科学定律,它一定程度揭示了信息技术进步的速度。

摩尔定律对于大家的好处很容易理解,每过一段时间,我们就能用到更便宜、性能更好的产品了,这是人类有史以来最爽的事情,因为在此之前大家总是抱怨东西涨价。

看看手机就知道了,芯片性能一直在增加,而手机价格却不怎么增长,甚至千元机性能也很好,这都要归功于摩尔定律。

但是,这就是几家欢喜几家愁的事情。

有摩尔定律就有反摩尔定律。

从另一个角度讲,厂家就悲催了,因为如果它生产和制造同样的东西,18 个月后收入就降了一半。这种从反面看摩尔定律的表述方式是 Google 前 CEO 施密特博士提出来的,因此也就叫反摩尔定律。

反摩尔定律让 IT 行业变成了青春饭,因为大部分从业者只有两个结局 —— 要么你的进步速度比摩尔定律更快,这样你会很累,很难干到老。要么干几年后赶不上同行的进度,不得不离开。不论是哪一种,都是青春饭。

至于怎么破局,简单讲,就是能力的增长要快过年纪的增长。在 IT 行业中,对于制作硬件的公司,摩尔定律的负面效果更明显,因为它让利润率变得越来越薄,直到企业关门。

施密特到 Google 之前是著名的计算机工作站和服务器公司太阳微系统公司的 CTO,看到太阳公司的业绩一年不如一年,感叹人再有办法也拗不过规律,才讲出了反摩尔定律。

但是对个人来讲,从事硬件的个人反而不容易被淘汰,因为经验在这个行业里很重要。相比之下,单纯从事软件工作的人,很容易被淘汰。

看到了吗?摩尔定律竟然也是导致我们 IT 行业吃青春饭,这么累的原因。

程序员为什么会这么累呢?我们能不能不跟着硬件来改变软件呢?

这就需要从另外一个定律讲起了。

就是安迪-比尔定律。

我相信大家都有这种感受,就是手机最少两三年就得换一部,因为不换的话,手机就会卡,为什么会卡呢?

因为软件越来越大了,占用内存越来越高了。

手机性能不如现在的时候,软件才占几M ,甚至几十 M 就够了,现在一个普通的小软件占用内存都得几百 M 甚至,上 G 。

不断更新的软件越来越慢,吃掉了你的手机硬件性能的提升。这在 IT 产业中,被称为安迪-比尔定律。

安迪是英特尔公司原 CEO 安迪・格鲁夫,比尔就是大家熟知的微软公司创始人比尔・盖茨。安迪-比尔定律原来的表述是 “安迪所给你的,比尔将它们拿走”。也就是说,英特尔等公司按照摩尔定律提升的硬件性能,都被以微软为代表的软件公司消耗掉了,使得你不得不去买新的硬件。

但是,现在有两个新情况出现了。

一个是摩尔定律可能到极限了,也就是性能未来可能会提升,但是,不会这么快了;另外一个情况是经济环境变了,大家消费开始变得保守了,一个手机可能会用三四年,甚至更长。

这就意味着什么?意味着在硬件不变的前提下,要想让机器运行的更快,就需要不断的优化软件。

所以,对于移动端程序员的未来我认为在于底层和性能优化。

你要懂得如何给软件做性能优化,或者是系统级的性能优化,如何让软件运行的更好、更快。

你会优化软件也行,会 framework 层的知识,懂得如何优化系统也行。

这可能是比较好的择业方向。

如果你是一个还没有进入互联网行业的学生,那么未来最好学习一下性能优化或者 framework 系统层的知识,这是优势。

当然了,数据安全方向也是一个不错的选择,虽然,微信说不保存大家的聊天记录,所以存在了用户自己本地,大家还是不相信,但是,正是因为这种不相信,未来数据安全方面也是非常重要的一个就业方向。

这是我的一点思考和感悟。

点击下方公众号卡片,关注我

在公众号对话框,回复关键字 “1024”

免费领取副业赚钱实操教程

921358d8aad4eee8d8c4b50dcb802e63.png

相关文章:

微信又被吐槽了,委屈啊

昨天的时候,一打开微博热搜榜,一看,微信又被吐槽了,微信占用存储这件事几乎年年会被骂,几乎也会年年被吐槽。 这次的起因呢,是一个人整理了一个方法:「微信内存从 126G 清理到 75G 我是怎么做到…...

刷题笔记27——并查集

很长一段时间,我的生活看似马上就要开始了。但是总有一些障碍阻挡着,有些事得先解决,有些工作还有待完成,时间貌似不够用,还有一笔债务8要去付清,然后生活就会开始。最后我终于明白,这些障碍&am…...

Python 模拟类属性

文章目录 模拟类属性的原因模拟类属性的可能解决方案使用 PropertyMock 模拟类属性在不使用 PropertyMock 的情况下模拟类属性Python 模拟类构造函数使用 patch.object 装饰器来修补构造函数本文的主要目的是介绍如何使用 python 单元测试模块 unittest 操作类属性以进行测试和…...

面试算法24:反转链表

题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。例如,把图4.8(a)中的链表反转之后得到的链表如图4.8(b)所示。 分析 由于节点j的next指针指向了它的前一个节…...

【论文阅读】面向抽取和理解基于Transformer的自动作文评分模型的隐式评价标准(实验结果部分)

方法 结果 在这一部分,我们展示对于每个模型比较的聚合的统计分析当涉及到计算特征和独立的特征组(表格1),抽取功能组和对齐重要功能组(表格2),并且最后,我们提供从模型比较&#x…...

VueRouter与expres/koa中间件的关联

ueRouter: runQueue 路由守卫都是有三个参数to,from,next。其中next就是下方的fn执行时候传入的第二个参数(回调函数),只有该回调执行后才会挨个遍历queue内的守卫。 中间件的作用 隔离基础设施与业务逻辑之间的细节。详细的内容位于《深入浅出Node.js》P210 另外一…...

二十、SpringCloud Alibaba Seata处理分布式事务

目录 一、分布式事务问题1、分布式之前2、分布式之后 二、Seata简介1、Seata是什么?2、Seata能干嘛?3、去拿下?4、怎么玩 三、Seata-server安装四、订单、库存、账户业务数据库准备五、订单、库存、账户业务微服务准备六、Seata原理介绍 一、…...

标准误与聚类稳健标准误的理解

1 标准误 1.1 定义 标准误(Standard Error)是用来衡量统计样本估计量(如均值、回归系数等)与总体参数之间的差异的一种统计量。标准误衡量了样本估计量的变异程度,提供了对总体参数的估计的不确定性的度量。标准误越…...

【Github】将本地仓库同步到github上

许久没有用GitHub了,怎么传仓库都忘记了。在这里记录一下 If you have a local folder on your machine and you want to transform it into a GitHub repository, follow the steps below: 1. Install Git (if not already installed) Make sure you have Git in…...

c++视觉--通道分离,合并处理,在分离的通道中的ROI感兴趣区域里添加logo图片

c视觉–通道分离&#xff0c;合并处理 通道分离: split()函数 #include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat image cv::imread("1.jpg");// 检查图像是否成功加载if (image.empty()) {std::cerr << "Error: Could not read the…...

python爬虫:多线程收集/验证IP从而搭建有效IP代理池

目录 一、前言 二、IP池的实现 1. 收集代理IP 2. 验证代理IP可用性 3. 搭建IP代理池 三、多线程实现 四、代理IP的使用 五、总结 一、前言 在网络爬虫中&#xff0c;IP代理池的作用非常重要。网络爬虫需要大量的IP地址来发送请求&#xff0c;同时为了降低被封禁的风险…...

阻塞队列以及阻塞队列的一个使用

阻塞队列以及阻塞队列的一个使用 阻塞队列简介 阻塞队列&#xff08;Blocking Queue&#xff09;是一种常见的队列数据结构&#xff0c;它具有特殊的行为&#xff0c;可以用于多线程编程中&#xff0c;以协调不同线程之间的任务执行和数据传递。阻塞队列在多线程环境中非常有…...

kafka的请求处理机制

目录 前言&#xff1a; kafak是如何处理请求的&#xff1f; 控制请求与数据类请求 参考资料 前言&#xff1a; 无论是 Kafka 客户端还是 Broker 端&#xff0c;它们之间的交互都是通过“请求 / 响应”的方式完成的。比如&#xff0c;客户端会通过网络发送消息生产请求给 B…...

Linux系统管理:虚拟机Centos Stream 9安装

目录 一、理论 1.Centos Stream 9 二、实验 1.虚拟机Centos Stream 9安装准备阶段 2.安装Centos Stream 9 3.进入系统 一、理论 1.Centos Stream 9 (1) 简介 CentOS Stream 是一种 Linux 操作系统。安装此操作系统的难题在于&#xff0c;在安装此系统之前&#xff0c…...

5种排序算法

文章目录 一&#xff0c;排序算法时间复杂度比较二&#xff0c;插入排序三&#xff0c;冒泡排序四&#xff0c;快速排序五&#xff0c;堆排序六&#xff0c;二分归并排序 一&#xff0c;排序算法时间复杂度比较 算法最坏情况下平均情况下插入排序O(n )O(n)冒泡排序O(n)O(n)快速…...

TCP/IP(七)TCP的连接管理(四)

一 全连接队列 nginx listen 参数backlog的意义 nginx配置文件中listen后面的backlog配置 ① TCP全连接队列概念 全连接队列: 也称 accept 队列 ② 查看应用程序的 TCP 全连接队列大小 实验1&#xff1a; ss 命令查看 LISTEN状态下 Recv-Q/Send-Q 含义附加&#xff1a;…...

LeetCode【84】柱状图中的最大矩形

题目&#xff1a; 思路&#xff1a; https://blog.csdn.net/qq_28468707/article/details/103682528 https://www.jianshu.com/p/2b9a36a548fa 清晰 代码&#xff1a; public int largestRectangleArea(int[] heights) {int[] heightadd new int[heights.length 1];for (i…...

C++:关于模拟实现vector和list中迭代器模块的理解

文章目录 list和vector的迭代器对比list的实现过程完整代码 本篇是关于vector和list的模拟实现中&#xff0c;关于迭代器模块的更进一步理解&#xff0c;以及在前文的基础上增加对于反向迭代器的实现和库函数的对比等 本篇是写于前面模拟实现的一段时间后&#xff0c;重新回头…...

HTML 笔记 表格

1 表格基本语法 tr&#xff1a;table row th&#xff1a;table head 2 表格属性 2.1 基本属性 表格的基本属性是指表格的行、列和单元格但并不是每个表格的单元格大小都是统一的&#xff0c;所以需要设计者通过一些属性参数来修改表格的样子&#xff0c;让它们可以更更多样…...

3.1 C/C++ 使用字符与指针

C/C语言是一种通用的编程语言&#xff0c;具有高效、灵活和可移植等特点。C语言主要用于系统编程&#xff0c;如操作系统、编译器、数据库等&#xff1b;C语言是C语言的扩展&#xff0c;增加了面向对象编程的特性&#xff0c;适用于大型软件系统、图形用户界面、嵌入式系统等。…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...