ivx中字体显示_iVX云服务费用优化 · 上篇
本文全文字?jǐn)?shù):? ?3308
預(yù)計(jì)閱讀時(shí)間:? ?10 分鐘
本文篇幅較長,建議親親能夠完成閱讀,將會學(xué)到不少干貨哦~??
本文目錄
一虛擬機(jī)
->我們?yōu)楹侮P(guān)閉了之前的虛擬機(jī)服務(wù)?
->是否有新的虛擬機(jī)計(jì)劃?
二流量優(yōu)化
->靜態(tài)流量優(yōu)化方案
靜態(tài)流量:每個(gè)案例打開時(shí),產(chǎn)生的流量
->動態(tài)流量優(yōu)化方案
動態(tài)流量:從數(shù)據(jù)庫或者后臺返回的圖片或視頻等資源產(chǎn)生的流量
三常見的“巨”坑
->視頻投票案例常見“巨坑”
->“巨坑”填平建議(強(qiáng)烈)
最近收到了很多同學(xué)的抱怨和顧慮,覺得iVX的云服務(wù)費(fèi)用太高了,不可控,希望可以恢復(fù)之前的虛擬機(jī)服務(wù),讓運(yùn)維費(fèi)用完全可控。
我先來回復(fù)一下關(guān)于虛擬機(jī)服務(wù)的問題,然后教大家怎樣優(yōu)化案例的流量費(fèi)用部分,讀完這篇“秘籍”,大家可能就會覺得控制流量費(fèi)用完全是可行的了。
一虛擬機(jī)
1?為何關(guān)閉了虛擬機(jī)服務(wù)?
平臺的成本不可控
運(yùn)行一個(gè)案例,除了需要計(jì)算服務(wù)器,還需要mysql數(shù)據(jù)庫、redis、ES全文搜索數(shù)據(jù)庫、對象存儲、連接服務(wù)器、公共的網(wǎng)關(guān)/api服務(wù)等等資源,特別是我們用aws高保障可伸縮mysql數(shù)據(jù)庫,成本非常高。
我們無法將這些服務(wù)成本公平的“平攤”給每個(gè)計(jì)算服務(wù)器,因此每個(gè)“虛擬機(jī)”只是收取了純計(jì)算的成本,這個(gè)對于平臺來說無法覆蓋成本,因此,我們只能暫時(shí)暫停了這個(gè)服務(wù);
運(yùn)維不可控
虛擬機(jī)里的后臺代碼是不會自動更新的,因此,當(dāng)平臺更新了一些新功能,案例重新部署至虛擬機(jī)可能會出現(xiàn)問題,需要一個(gè)一個(gè)去維護(hù)更新,這個(gè)工作量非常大,如果要重新上線虛擬機(jī),我們需要重新開發(fā)一套虛擬機(jī)管理系統(tǒng)。
2?是否有新的虛擬機(jī)計(jì)劃?
這個(gè)我們已經(jīng)在技術(shù)上測算過是可行的,但新的虛擬機(jī)(或者叫“虛擬系統(tǒng)”更為確切),我們需要將所有的資源,特別是數(shù)據(jù)庫部分,打包進(jìn)虛擬資源。
如果用戶購買一整套虛擬資源,其實(shí)就是我們幫你維護(hù)部署了一整套aws系統(tǒng)。這個(gè)系統(tǒng)我們測算過,最低的配置,每個(gè)月的硬成本大約是1800+。這個(gè)成本,我們認(rèn)為對于個(gè)人用戶來說還是偏高,因此這個(gè)方案還在內(nèi)部討論中。
二 流量優(yōu)化
接下來,我們來詳細(xì)討論一下怎樣在公共平臺的投放上省錢。
由于最近收到很多關(guān)于流量扣費(fèi)的問題,因此在這部分中我主要來講一下流量的優(yōu)化。
iVX的扣費(fèi)項(xiàng)目主要是兩項(xiàng):
👉流量
👉后臺服務(wù)器運(yùn)算
本期我們主要講流量部分的扣費(fèi)。
iVX的流量扣費(fèi),包括兩個(gè)部分,一個(gè)是靜態(tài)流量,一個(gè)是動態(tài)流量。
靜態(tài)流量
我們先來講靜態(tài)流量。
靜態(tài)流量,即每個(gè)案例打開時(shí),產(chǎn)生的流量,其計(jì)算方法為:案例靜態(tài)大小*打開次數(shù) (這里的打開次數(shù),僅計(jì)算正式發(fā)布上架地址的打開次數(shù),測試發(fā)布的,不計(jì)算在內(nèi))
所以,
案例靜態(tài)大小 = 案例資源大小 + 案例JS包大小
案例的資源大小,我們可以在發(fā)布界面中看到:
案例的js包大小,需要發(fā)布,系統(tǒng)對代碼進(jìn)行編譯之后,才能夠知道,因此在未發(fā)布時(shí),看不到。
JS包的大小,我們可以通過這個(gè)地址來查詢:
https://v4rel.h5sys.cn/api/10328579/nodelookup?nid=xxx
其中,xxx,就是你的案例的nid;
但只要不是特別變態(tài)的案例,一個(gè)案例的JS包,通常不會超過2-3M,我們可以取2.5M來做一個(gè)預(yù)估。因此,我們的工作主要是優(yōu)化素材資源的大小。
舉個(gè)例子,
如果我們將整個(gè)案例的靜態(tài)大小控制在5M,
那,播放1000次的流量成本是:5*1000/1024*0.3=1.46元,這個(gè)成本對于一個(gè)商業(yè)案例來說,基本可以忽略了。播放1w次,也是14.6元。
根據(jù)我們的經(jīng)驗(yàn),通常一個(gè)營銷類型的活動投放,不太會超過5w次,中小型的,不會超過1w次。這個(gè)成本,可以提前和客戶溝通好。
那接下來的問題是,我們怎樣壓縮素材資源:
圖片,盡量小于100K
根據(jù)我們的經(jīng)驗(yàn),對于移動端的圖片來說,無論舞臺是375寬還是750寬,一個(gè)全屏的背景圖,100k,足夠清晰了。
如果發(fā)現(xiàn)不清晰,那可能是這個(gè)圖片的編碼格式問題,大家可以試試官方推薦的圖片壓縮工具:tinypng.com。
我這里上傳一個(gè)ios的桌面背景圖大家感受一下:
上面這個(gè)圖片的大小是53k。即使你覺得不夠清晰,那*2倍的清晰度,在手機(jī)上也足夠了。
因此,千萬不要被設(shè)計(jì)師誤導(dǎo),設(shè)計(jì)師們喜歡用盡量高清的圖,因此他們的電腦也都是頂配的專用機(jī)器,否則根本都跑不起來他們的項(xiàng)目。
作為開發(fā)者,我們一點(diǎn)要把資源優(yōu)化放在第一位,這不僅僅可以省錢,而且可以大大提高用戶打開案例的速度,提高用戶體驗(yàn)。
優(yōu)化字體包
有一個(gè)常見的“坑爹”的操作是上傳一個(gè)沒有剪裁過的字體包。即在普通文本的字體里,選擇自定義上傳字體:
如果我們上傳的是中文字體包,基本上都是超過1M的,超過10M也不奇怪。
大家可以嘗試上傳一個(gè)中文字體包,然后去發(fā)布界面看一下,通常,字體包就是排在第一個(gè)的資源:
為啥字體包那么大?
因?yàn)橹形牡淖煮w包,要包含所有常見的中文字,盡管你可能只是用了100個(gè),但這個(gè)包里,可能包含5000+個(gè)字,所以就很坑流量了。
針對這種情況,主要有兩種優(yōu)化的方法:
使用中文字體組件
中文字體,是服務(wù)器動態(tài)生成的字體,可能會消耗一點(diǎn)動態(tài)的計(jì)算和流量,但生成圖片這個(gè)計(jì)算很有限,對比一個(gè)5M+的字體包,會省錢很多;
剪裁字體包
網(wǎng)上有很多剪裁字體包的工具,可以將我們需要的字,從一個(gè)大的字體包里“提取”出來。
比如,我們只用了100個(gè)字,就可以把這100個(gè)字從5000字的字體包里抽取出來,這樣字體包的大小也可以變成之前的50分之一。
針對各種網(wǎng)上的字體包壓縮工具,我還沒有詳細(xì)評測過,歡迎大家在論壇評論區(qū)推薦~~
但注意,剪裁字體包的方法,只能適用于靜態(tài)的文本,如果是用戶輸入的文本,也要支持使用自定義字體,那只能使用中文字體了。
使用動態(tài)流量來代替靜態(tài)流量
動態(tài)流量,即在案例加載完成之后再去加載的資源。
比如,我們有一個(gè)很大的視頻,需要在案例里播放。這個(gè)時(shí)候,如果我們把視頻直接在視頻組件里上傳,那視頻就會作為靜態(tài)資源,出現(xiàn)在發(fā)布界面的“素材列表”中,所有出現(xiàn)在這個(gè)列表中的資源,都會在案例打開的時(shí)候加載,計(jì)算入靜態(tài)流量。
但如果這個(gè)視頻,不需要初始化就自動播放,而是需要用戶點(diǎn)擊之后才播放的,那這個(gè)時(shí)候,我們完全可以上傳視頻并把視頻的url地址記下來,然后在用戶點(diǎn)擊播放的時(shí)候,在事件里對視頻組件進(jìn)行賦值,再讓它加載這個(gè)url。
這樣,這個(gè)視頻就只有在用戶點(diǎn)擊的時(shí)候,才會加載視頻產(chǎn)生流量,而不是在初始化的時(shí)候就產(chǎn)生所有視頻的加載流量。
由于并不是每個(gè)打開案例的用戶都會點(diǎn)擊視頻(或者點(diǎn)擊所有的視頻),因此,這個(gè)方法可以節(jié)省掉很多不必要的流量加載。
動態(tài)流量
接下來,我們來講一下怎樣優(yōu)化動態(tài)流量。
動態(tài)流量,即從數(shù)據(jù)庫或者后臺返回的圖片或視頻等資源產(chǎn)生的流量。
這些資源,不包含在案例靜態(tài)包中,因此,會根據(jù)實(shí)際的使用情況來計(jì)算流量。(注意,中文字體組件,也是一種動態(tài)產(chǎn)生的圖片,也會計(jì)算在動態(tài)流量中,而不是靜態(tài)流量)
我們有一個(gè)工具可以檢查動態(tài)流量
在案例發(fā)布地址(不一定需要上架)后面添加URL參數(shù)?logsize=1
例,
https://www.ivx.cn/test/cdn?logsize=1
在每次加載動態(tài)資源的時(shí)候,會在控制臺,把當(dāng)前新增的動態(tài)流量,以及本次打開的所有動態(tài)流量顯示出來。
實(shí)例鏈接案例中,點(diǎn)擊兩個(gè)文本,可以從后臺輸出兩個(gè)圖片,我們會在控制臺看到兩個(gè)記錄:
01
02
每條記錄包含兩個(gè)值,第一個(gè)值代表當(dāng)前總動態(tài)流量,第二個(gè)值代表當(dāng)前額外新增的流量。
三?常見“巨”坑
針對動態(tài)流量的優(yōu)化,除了以上提到的盡可能優(yōu)化素材大小以外,還有一個(gè)常見的坑。
這個(gè)問題,我這邊近期碰到過3個(gè)案例,都是做視頻投票,都產(chǎn)生了巨大的流量。
視頻投票的案例,產(chǎn)生大流量的原因主要有二:
原因之一:用戶自主上傳的視頻很大
用戶自主上傳的視頻很大,動不動就是100M,那這個(gè)時(shí)候,我們要在列表里顯示這個(gè)視頻,就會非常燒錢了。想象一下有20個(gè)候選人,每個(gè)人上傳了一個(gè)100M的視頻……
這個(gè)時(shí)候,我們可以首先考慮限制視頻的大小或時(shí)長。
推薦解決方法
👉請用戶自行壓縮視頻。
👉或者做一個(gè)候選人審核的功能。
即不是用戶提交了申請就馬上讓他出現(xiàn)在候選人列表中,而是需要通過審核。在審核的時(shí)候,我們完全可以去壓縮一下他的視頻。
👉實(shí)在不行,我們可以定時(shí)去數(shù)據(jù)庫里看一下資源,然后手動壓縮視頻之后,替換。
原因之二:在列表里直接顯示視頻
如果在候選人列表里直接顯示視頻,那只要用戶進(jìn)入候選人列表,視頻就會開始加載,產(chǎn)生流量。
但注意,此時(shí)在列表階段,用戶并不會真的去一個(gè)一個(gè)視頻點(diǎn)開來看。
因此,我們在這個(gè)階段,浪費(fèi)了非常多的資源。
另外,注意數(shù)據(jù)庫設(shè)置分頁輸出,否則,用戶一滑列表,加載一堆視頻,我們就開始燒錢了。
此時(shí),我們要優(yōu)化候選人列表。
推薦解決方法
👉在列表里設(shè)置顯示視頻的封面圖。
iVX的上傳視頻功能,可以直接獲取到封面圖,我們將這個(gè)封面圖,存在另一個(gè)字段里,在列表里只顯示圖片,那就可以避免巨大的流量消耗了。
👉注意數(shù)據(jù)庫分頁輸出。
就是每次加載只輸出當(dāng)前頁面所需要的素材,比如10個(gè),然后當(dāng)用戶滑到底部的時(shí)候,再去加載另外10個(gè),這樣也可以很好的節(jié)省動態(tài)資源。
以上,就是我們對流量部分的優(yōu)化總結(jié),歡迎大家在論壇評論區(qū)提出更多建議~~
總之,
在發(fā)布時(shí)查看素材大小,
盡量控制在10M以內(nèi),
并通過?logsize=1,
檢查案例的動態(tài)資源加載,
學(xué)會這些技巧,
相信你也會覺得控制流量費(fèi)用不是問題了~~
彩蛋
推薦一個(gè)字體裁剪工具
https://font-subset.disidu.com/
總結(jié)
以上是生活随笔為你收集整理的ivx中字体显示_iVX云服务费用优化 · 上篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: https访问http加载不出图片_前端
- 下一篇: python 创建一个空向量_Pytho