抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

2012.5.23 微博热报:需求分析、性能调优

2012 年 5 月 23 日

@阿里巴巴中国微博中举了一个对设计花瓶的需求分析示例,引起了大家对需求分析技巧的讨论; @左耳朵耗子微博中表示性能调优不一定要自己使用缓存,因为许多层面已经设计了缓存机制。

需求分析

@阿里巴巴中国微博中举了一个例子:“需求方说:帮我设计一个花瓶。小 A 设计师直接去做花瓶去了。小 B 多问了几句:多大的?什么材质的?什么时候要?预算是多少?小 C 则问:你要花瓶做什么的?是放鲜花还是做室内装饰用的?小 A 肯定做出了花瓶,但是未必是顾客想要的。小 B 也做了花瓶,顾客也买单了,已经合格了。但是小 C 则有可能让顾客惊喜。”

大家对此的看法:

刘光裕:只有抓住用户真正的需求,才能做出好产品。但不等于只有通过用户调研才能做出好产品。很多东西,真的只有放在用户面前,用户才会理解其价值。

宋安:因为小 C 考虑了具体的用户需求场景,具有用户体验和品牌营销的思维,而不仅是制造一个简单的产品。

chennychen :乔布斯直接做了,然后告诉客户:这就是你要的花瓶。客户惊喜,欣然买单。

JAMU 時尚插畫師:但是很可笑的是很多老板只会告诉你我要一个花瓶~ 而且即便做到问清楚材质神马的老板各种不满意~ 所以这个理论现实生活中根本不可能。

loary311 :小 C 的成功是在于了解产品的用途,然后在生产的时候尽最大可能去满足客户的这个需求,物善其用,客户有物超所值的感觉自然会感到惊喜。

innovate511 :IT 面向业务需求,何其相像,不仅仅是业务部门面向用户时才会碰到,任何服务性的双方都会面临这个问题。

七斗先生:非也,有时候顾客并不知道自己真正需要什么。好的产品并不是满足顾客的所有需要,而是给他们一个购买的理由。

@宋安:用户需求和需求场景的识别是销售的前提,产品和服务的本质是如何满足需求,并创造良好的用户体验。

Skydesign :客户往往很难表达他们要什么,但是他们知道他们不要什么。所以在中国很多时候,DEMO 比 PPT 来得有效果~

李结林:如果客户对小 C 说“和你有关系吗?”小 C 该怎样回答,创新固然重要,但是要以客户的利益和需求为出发点,小 B 的做法,不错。在懂得了客户的需求后,在客户的可接受范围内,适当加入小 C 的角色是可以考虑的!

性能调优

@左耳朵耗子微博中说:“每每一和人说到性能调优的东西,就会听到人马上说要建个 cache 或是用个 hash table 缓存什么的,我总是觉得并不一定啊。因为 cache 这个东西到处都有啊,从 CPU 的 L1 L2 到 RAM 都有 cache,OS 读文件运行程序也有 cache,RDBMS 也有 cache,语言层面 JVM 里也有 cache,网卡上也有 cache……,有时候真没必要自己建了。”

大家对此展开了讨论:

jametong :在很多人眼里,速度不行,那就上个缓存吧!至于缓存到底是什么?该如何利用各种不同的缓存,他所处理的具体业务场景是否需要缓存?那则是另一个问题!

压力很大同志:缓存也算是一种空间换时间的方法嘛,有的结果明明可以反复用的就存起来。业务逻辑部分能得到的为什么非要去 RDBMS 去走一遭,再说细点 CPU 的 L1、L2 也没法缓存业务逻辑需要的数据,不是在一个级别上的东西,要是指着 CPU 缓存了、IO 缓存了、RDBMS 缓存了,就反正他们都缓存了,我就不管了,这跟耍流氓无区别。

kylemick :如果单纯 IO 角度,应该是要的吧…瓶颈点在那里,不然也不会在这么多层面做了这么多 Cache。至于算法调优,都是根据实际情况吧,没有具体情况,调优岂不是无敌了?

steedhorse :我觉得所有的动态规划算法都与 Cache 机制异曲同工。不过现实中我也对一碰到性能调优就想 Cache 的做法存有疑虑。经典线性规划问题可以用现成算法。其他问题也常可以通过算法和数据结构的改进来减少重复计算。

左耳朵耗子:我这里说的“有时候不需要”。举个例子,某应用有读很多小图片,但又不是很多,比如 25 万个小图片,大约不到 1GB,于是想做一个 cache 把图片预读到内存以减小磁盘 I/O,但是 OS 的内存管理已经帮你干了,真的没必要自己再干了。

吴尔平 -andy :不支持这种说话,换个顺序理解一下,为什么 CPU 需要 L1、L2、L3,为什么有了 CPU 的这几级还要文件 Cache, 要 db 的 Cache。就知道为什么有些应用需要有应用级的 Cache。

校园猫:如果用 OS 的 cache,需要从内核空间拷贝到用户空间,如果用 DBMS 的 cache,要从数据库进程空间拷贝到用户进程空间,如果对这些时间开销可以容忍,当然可以不需要自己建 cache,如果不能容忍,那还得自己建,另外 cache 的淘汰算法也不能控制,除非完全能装下不考虑淘汰。

steedhorse :这个话题好像说乱了。原因是楼主前半句跟哈希表相提并论的 cache 指的是“计算结果缓存”,比如很多人都会不太严格地讲“把运算结果 cache 起来”,这是 cache 的一种不太正宗的用法。而后半句的 cache 指的是存储结构上的 cache,这个是 cache 一词的正宗本义。前后两个 cache 在含义上不太一致,导致了各说各的。

Robin 圈:性能问题之所以难解决,通常是我们错过了第一解决时间,搞的自己都不知道问题再哪里了。所以如果性能成为了关键指标,那么就应该集成到 CI 中,如果要求是 1s,那么超过了就该给个 failed。

jametong : 瓶颈更多是基于设计、业务来定位的,深入业务、系统,找到有共享资源的点(L1/L2 缓存,CPU 调度、业务热点账户,流程设计的热点),通过测试来寻找瓶颈是代价非常高昂的方式,测试很多时候只是用来验证,而不是寻找!没有针对性的优化,没有经过测试找到瓶颈。

一线天色天宇星辰:往往测试一把,解决影响性能的最主要因素,就能解决问题了,十全十美的设计是不可能的,把可能遇到的性能问题都测试一把,挑主要的解决掉,否则过度设计会搞死自己的。

2012 年 5 月 23 日 08:182126
用户头像

发布了 501 篇内容, 共 218.8 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

聪明人的训练(二十)

Changing Lin

4月日更

阿里员工:最惨P7,33岁才28K,感觉没有前途了。网友调侃:最美逆行者

程序员生活志

裸辞还可以吊打大厂面试官?四面拿到阿里、字节offer后我还是选择了美团!

Java架构师迁哥

MySQL常用引擎及优缺点

Sakura

四月日更

GitHub开源:100美元自制激光雷达

不脱发的程序猿

GitHub DIY 开源项目 四月日更 激光雷达

破十亿浏览量的阿里最新Java架构师成长笔记开源!

Java架构追梦

Java 阿里巴巴 架构 面试 成长笔记

Redis持久化方案介绍之RDB方案

大数据技术指南

redis 4月日更

《专访阿里研究员吴翰清:大数据时代下,如何保障网络安全和用户隐私》(采访提纲)

三掌柜

调查采访能力考核

搭建亿级时间线数据的监控系统,我有绝招!

华为云开发者社区

Grafana 监控系统 GaussDB(for Influx) 华为云数据库 时间线

多源数据即席查询Trino(Presto)引擎剖析

小舰

4月日更

【签约计划】行业分析能力考核成绩公布

InfoQ写作平台官方

活动专区 签约计划

Linux tree命令

一个大红包

Linux linux命令 4月日更

iMazing 一款替代iTunes的数据备份软件

懒得勤快

ios Mac imazing 手机管理

腾讯万字Code Review规范出炉!别再乱写代码了

程序员生活志

我很久没写代码了,但我是个好架构师

四猿外

Java 程序员 系统架构 架构师 代码

Rust从0到1-枚举-if let控制流

rust 枚举 if let

吊打面试官,四面拿到阿里、字节offer后我还是选择了美团!

互联网架构师小马

Java 面试 软件开发 求职 找工作

全程干货!拍乐云受邀LiveVideoStackCon,首席科学家分享拥塞控制最佳实践

拍乐云Pano

架构实战营 - 模块 2- 总结

吴建中

架构实战营

抢购倒计时自定义控件的实现与优化

vivo互联网技术

动画 安卓 自定义控件 倒计时

神级Android进阶笔记!一次关于JVM的面试经历,建议收藏

欢喜学安卓

android 程序员 面试 移动开发

Java程序员3个月从月薪6k涨到15k,你知道我是怎么过来的吗?

Crud的程序员

Java 编程 程序员 架构

一天下载量突破9000000!限时分享:阿里Java架构师成长笔记(2021版)

比伯

Java 架构 面试 程序人生 计算机

计算机原理学习笔记Day11

穿过生命散发芬芳

计算机原理 4月日更

三色标记原理,我给应聘者问懵了...

华为云开发者社区

Java 节点 三色标记 SATB算法 回收器

【全网首发】2021年移动开发iOS进阶提升方案,内附详细视频知识点解析和思维导图!【强烈建议收藏!】

flutter swift 数据结构与算法 ios开发 iOS逆向

凡尔赛?拿到阿里offer只用了29天?

Java架构师迁哥

全球案例 | 霍尼韦尔:Atlassian 帮助我们在疫情期间拯救生命

Atlassian

敏捷 Atlassian Jira 远程协作 霍尼韦尔

面试加分项!为了跳槽强刷1000道Android真题,附小技巧

欢喜学安卓

android 程序员 面试 移动开发

华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数

华为云开发者社区

redis GaussDB(for Redis) 计数器 计数

低代码:正在改变软件的开发方式

华为云开发者社区

软件开发 低代码 低代码平台 华为云应用魔方 AppCube

Study Go: From Zero to Hero

Study Go: From Zero to Hero

2012.5.23微博热报:需求分析、性能调优-InfoQ