作者pupuliao (pupu)
看板java
标题Re: [问题] android 开发 java 的效能考量
时间Wed Aug 10 01:29:59 2016
※ 引述《cyclone350 (老子我最神)》之铭言:
: HI,
: 我完全没有开发 android app 的经验
: 在开发上我是提供 API,让 APP 呼叫并且处理
: 但是 APP 在开发上跟我说的效能问题实在很难说服我
: 我下面会举一些例子,希望有在开发 APP 的人或是有相关实际经验的人
: 能跟我讲 APP 的考量点
: # 例子1
: server 会提供一个商品列表,包含商品名称、商品价钱、推荐顺序
: ```
: [
: {name: "product1", price: 20, recommandOrder: "1evel1"},
: {name: "product2", price: 30, recommandOrder: "1evel1"},
: {name: "product3", price: 40, recommandOrder: "1evel1"},
: {name: "product4", price: 30, recommandOrder: "1evel2"},
: {name: "product5", price: 20, recommandOrder: "1evel3"},
: {name: "product6", price: 30, recommandOrder: "1evel3"}
: ]
: ```
: 从这边可以看出来
: 第一个 level1 的商品是 product1
: 第一个 level2 的商品是 product4
: 第一个 level3 的商品是 product5
: 实际上我们每一次回传的商品数量约 50~300 个
: 问题来了,app 团队告知他们无法这样计算,因为会有效能议题
: 但是… 为什麽一个普通的单次或两次回圈,
: 而且数量只有 300 的情况下会有效能议题
: app 团队回应因为要建立物件对应 (hashMap),所以会有效能议题
: 这实在是有点难说服我,因为依照我对手机的了解,可以跑 3D 游戏
: 可以玩跑跑姜饼人,可以玩动作卡牌游戏
: 究竟是为什麽一个没有 IO 的普通回圈会有效能问题?
: 请问是我少考虑甚麽东西吗? 麻烦有经验的人帮忙回答一下,谢谢
我没用APP 实做过但是我碰过这种实作方式的API.....
说实话....这种结构很糟.....很糟....
这明明是一个>=3维以上的资料结构,你硬要用二维来存
浪费RAM空间就算了
我要使用的的时候 还必须要重新结构化.....
另外 如果需求只是显示部分商品,但每当我拿到资料要做筛选时
还必须要跑一次完整的资料建构?......
麻烦用json 丢个三微阵列给我
还有 用你之前SQL 的举例
你给的资料就是没有index 的DB 资讯.....不管要啥资料 都要O(n)的时间复杂度...
最近碰到一个状况是 捞 飞机航般机票资讯
我明明只要一笔特定航班,我却要建构五六百笔航班资讯.....玩我阿..
: ---
: # 例子2
: APP 有一个商品列表页,一个商品介绍页面,一个商品使用规格
: 使用规格的意思是说
: 假如我买一个线上音乐,这个音乐可以选的音质,歌词...等杂七杂八的设定
: app 团队表示必须在一只 API 内提供所有内容
: 也就是列表所有商品的介绍,细项,以及购买後的全部设定
: 有多个 request 会有效能问题
: 这我就更难动了,我有写过网页
: 网页现在趋势是 ajax 互动,你要做某件事情,或取得某些资料,再呼叫
: 相对的 API 即可,也就是一个 API 目的都很单纯,整体架构也比较有弹性、
: 方便修改
: 就算是最古老的 jsp 写法,完全没有 ajax,也是一个页面一个 model
: 怎麽会有一大堆页面的所有资料包含在一个 model 的概念?
: 而且假设多个 request 会有效能议题,那浏览器不就挂掉了?
: 因为随便一个页面可能就有好几十个 http request...
: 请问是我少考虑甚麽东西吗? 麻烦有经验的人帮忙回答一下,谢谢
这个问题有人回答了就不多说
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.240.211.191
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1470763802.A.A4D.html
1F:→ cha122977: 只要一笔…不能开那种带SQLite条件的API吗? 08/11 02:54
2F:→ Jichang: 如果你是手机用户 你会希望手机一直查?还是手机里面算? 08/11 13:05
3F:→ KeySabre: tradeoff 08/14 22:03