看板 java 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/java/M.1470763802.A.A4D.html
cha122977: 只要一筆…不能開那種帶SQLite條件的API嗎? 08/11 02:54
Jichang: 如果你是手機用戶 你會希望手機一直查?還是手機裡面算? 08/11 13:05
KeySabre: tradeoff 08/14 22:03