A. 相對於cocos2d-js,cocos2d-x具有哪些優勢
cocos2d-js 用javascript 瀏覽器 webgame
cocos2d-x 用c++主要用於移動應用開發
B. js復雜對象內存不足
解決webpack打包、編譯、熱更新Node內存不足問題_node內存不夠_Vgb...
既然知道了問題所在,那麼就好解決了,面向網路編程,網路搜索如何解決Node運行內存不足的問題馬上就有了解決辦法,increase-memory-limit可以提高Node佔用內存。npm i -g increase-memory-limit安裝包,然後在項目目錄執行increase-memory-limit,...
繼續訪問
node打包內存不足問題解決方式:Allocation failed - JavaScript heap out...
直接在node後面寫上--max_old_space_size=4096就好了,我這里設置的內存大小是4G,這個具體的大小可以根據自己的項目情況來設置就好了。然後再重新運行npm run build就可以正常打包構建了。
繼續訪問
gulp-htmlparser:使用 gulp 將 html 解析為 js 對象
#gulp-htmlparser 插件解析HTML用 包裹 gulp-htmlparser 描述 使用 gulp 將 html 解析為 js 對象 節點版本 >= 0.9 吞咽版 3.x 用法 安裝 npm install gulp-htmlparser --save ##例子 var gulp = require ( 'gulp' ) ; var gparser = require ( 'gulp-htmlparser' ) ; gulp . task ( 'task' , function ( ) { gulp . src ( 'normal.html' ) . pipe ( gparser ( ) ) . pipe ( gulp . dest ( './' ) ) ; } ) ; gulp . task ( 'default' , 'task' )
node 內存 溢出 插件
版權聲明:本文為博主原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接和本聲明。 現象描述 昨天用webpack打包Vue的項目時,node內存溢出而停止build項目,即是項目構建過程中頻繁報內存溢出:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory。並且打包速度相當慢...
繼續訪問
npm命令運行時報錯_npm命令報錯整理_我自來去的博客
二. 內存溢出內存不足 描述 遠程連接win32位的伺服器 在項目目錄下執行打包命令 npm run build 報以上錯誤內容 內存溢出 內存不足 解決一 修改package.json中的內存大小 修改package.json文件中size的大小,然後重新執行打包命令 ...
繼續訪問
vscode執行npm時的一些錯誤及處理_藍色格子的博客
這個原因是JavaScript堆內存不足。 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 1 2.2、解決 通過安裝increase-memory-limit插件。命令:npm install -g increase-memory-lim...
繼續訪問
前端項目打包出現JavaScript堆內存不足、啟動也會內存溢出解決辦法\increase-memory-limit『 不是內部或外部命令,
打包出現JavaScript堆內存不足 最近打包遇到這種報錯 Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 以及 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 解決方法如下: 1.從網上搜索的資料試了一下,不大好用,不過也照做了 修改 package
繼續訪問
最新發布 npm 打包報錯JavaScript heap out of memory(親測可行)
npm 打包報錯JavaScript heap out of memory(親測可行)
繼續訪問
npm運行項目提示JavaScript heap out of memory(堆棧內存溢出問題)解決方案
1、堆棧內存溢出問題 npm ERR! code ELIFECYCLE npm ERR! errno 134 npm ERR! [email protected] dev: `vue-cli-service serve` npm ERR! Exit status 134 npm ERR! npm ERR! Failed at the [email protected] dev script. npm ERR! This is probably not a proble
繼續訪問
npm執行報內存溢出,內存不夠很使用
您需要增加節點允許的內存量。 您可以通過以下方式在全局范圍內執 打開一個cmd窗口 跑 setx NODE_OPTIONS --max_old_space_size=10240 針對本地調試使用。 關閉所有cmd /代碼編輯器 重新打開cmd並再次運行節點命令(npm等) ...
繼續訪問
npm 執行中遇到的問題
ubuntu@ip-10-200-100-47:~/pinpoint-backend$ npm run build > [email protected] prebuild /home/ubuntu/pinpoint-backend > rimraf dist > [email protected] build /home/ubuntu/pinpoint-b...
繼續訪問
vue3+vite+ts打包時遇到的問題以及「優化」,JavaScript heap out of memory(錯誤:內存不足)等
如果用了element plus可能打包會出現這個報錯。在tsconfig.json里加這代碼就行。vue3+vite+ts打包時報錯。
繼續訪問
npm run dev/build內存溢出解決方法,親測有效(JavaScript heap out of memory)
npm run dev內存溢出解決方案
繼續訪問
vue項目運行時報內存溢出:JavaScript heap out of memory
原文鏈接:https://blog.csdn.net/u014028247/article/details/120198702 ==== JS stack trace ========================================= 0: ExitFrame [pc: 000002AACBF079E0] Security context: 0x00b4d151e6e9 <JSObject> 1: byteLength(aka byteLength) [00
繼續訪問
gulp html 緩存,gulp解決瀏覽器緩存問題
給請求的文件加上唯一的版本號,這樣瀏覽器就會載入新文件,防止因緩存產生的問題。下面是用gulp-rev生成md5簽名,構建好的文件名會加上md5簽名,同時生成一個json用來保存文件名路徑對應關系。安裝插件npminstall--save-devgulpnpminstall--save-devgulp-revnpminstall--save-devgulp-rev-collect...
繼續訪問
npm run build 報錯 JavaScript heap out of memory & node -- max-old-space-size=4096不是內部或外部命令
npm run build 報錯 JavaScript heap out of memory node -- max-old-space-size=4096不是內部或外部命令
繼續訪問
nodejs運行時 內存不足解決方案
找到nodejs運行配置文件目錄 window下目錄位置 C:\Users\39716(用戶名)\AppData\Roaming\npm 找到內存不足發生的環境比如 webpack 打開webpack.cmd 添加 --max_old_space_size=4096 @IF EXIST "%~dp0\node.exe" ( "%~dp0\node.exe" "%~dp0\n...
繼續訪問
JS stacktrace--解決運行npm run serve 後報錯,node內存溢出問題
拉去vue項目,運行npm run serve 後,報錯如下 <--- JS stacktrace ---> ==== JS stack trace ========================================= 0: ExitFrame [pc: 0000002919A5C5C1] Security context: 0x02b9c119e6e9 <JSObject> 1: _send [0000016FEC87BBF1] [intern
繼續訪問
node:內存溢出(報錯:CALL_AND_RETRY_LAST分配失敗-JavaScript堆內存不足)
描述:項目運行npm run dev 運行一定次數(我這里只能保存一次,第二次保存就報錯,需要重新運行npm run dev,很耗費時間)後報錯 報錯:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 翻譯:CALL_AND_RETRY_LAST分配失敗-JavaScript堆內存不足 進過各種搜索,找到關於問題的解決方法—node內存溢出 解決方法: CMD,進入命令行 復制粘貼命令:setx NODE_OPTION
繼續訪問
npm run build打包提示heap out of memory
npm打包報 heap out of memory的解決辦法。
繼續訪問
運行npm start報錯堆內存不足
報錯 解決: "scripts": { "start": "node --max-old-space-size=4096 dev.js", "build": "webpack --progress --profile --colors --config webpack.prod.config.js", "test": "echo \"Error: no test...
繼續訪問
node內存溢出(報錯:CALL_AND_RETRY_LAST分配失敗-JavaScript堆內存不足)
描述:項目運行npm run dev 運行一定次數(我這里只能保存一次,第二次保存就報錯,需要重新運行npm run dev,很耗費時間)後報錯 報錯:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 翻譯:CALL_AND_RETRY_LAST分配失敗-JavaScript堆內存不足 進過各種搜索,找到關於...
繼續訪問
熱門推薦 執行 npm 命令時報錯:Allocation failed - JavaScript heap out of memory
執行 npm 命令時報錯: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 原因是 JavaScript堆內存不足,Node 是基於V8引擎,在 Node 中通過 JavaScript 使用內存時只能使用部分內存(64位系統下約為1.4 GB),如果內存不足,可以用下面方法來放寬V8默認的內存限制。 法一:添加參數--max_old_spa.
繼續訪問
npm 報錯內存不足
node.js
C. egret 和cocos2d-x-js哪個目前更穩定更好用
如果大型游戲,強烈建議不要使用cocos2d-js
我們目前的幾個項目都是cocos2d-js開發的,我打算把這幾個項目轉egret。有如下幾個理由:
1、cocos ide有BUG:斷點會崩潰、代碼提示很差、內存太高、虛擬機的菜單欄會影響事件(迭代了很多版本,這菜單欄BUG都沒修復)
2、studio的工作流在幾個引擎中是最差的,而且有BUG。經常和實際表現不一致。而且內存佔用大,會崩潰。不能繼承(這個問題最嚴重,不能繼承按鈕,那麼按下縮放等高級功能就很蛋疼)。
3、
架構太差。寫點小功能沒事,如果想寫大型游戲,這套架構會讓你抓狂!比如最簡單的按鈕事件,我必須在事件方法裡面加個觸摸類型判斷。一個很簡單的點擊,就
多出很多這種相似的代碼!4、UI有好幾套,然而每一套都有BUG。CCUI的設計也是很糟糕的!同時也是崩潰的罪魁禍首。
5、引擎BUG問題,
很多BUG會讓你欲哭無淚,比如坐標會出現undefined。再比如熱更新的BUG,XCODE編出的包默認是js而不是jsc,當這個包發布商店就會
出現不能熱更新的問題,同時也進不去游戲,卡在了熱更新界面。(這個問題導致我們流失了3個月的用戶,知道蘋果商店通過審核位置),再比如
java/objectc和js的交互,這個都有問題!再比如:ios第三方輸入法會導致崩潰!
6、工作流問題,IDE的斷點的觀察變數很不友好、studio導出的配置很大、studio擴展性很差。在IDE 1.2版本出來之前,我們團隊甚至無法斷點,只能列印日誌來debug。
7、工作效率問題,代碼提示先不談。我實現一個簡單的列表都能折騰很久,那ccui的list真是太不好用!除此之外,裁剪、遮罩這些只需要一行的代碼,在cocos下面需要無數行!
8、
引擎升級問題:cocos大概一個月1個升級,egret是2周。然而cocos升級會帶來大量的新BUG,而且兼容性很差。導致我們現在還用3.0版
本。最蛋疼的是,官方的3.6版本又不能斷點了!3.0升級到3.6還會導致布局混亂、九宮失效、崩潰閃退(絕對不是代碼問題這個解釋了)!基本上
cocos每加個新功能都會帶來無數新BUG,老BUG修復量也少,我論壇反饋的問題經常需要迭代2到3個版本才修復,下個版本修復兼職是不可能。而
egret不僅迭代快,BUG修復也勤快!也很少有一些導致產品質量的驗證BUG。
9、官方人員態度問題:我在cocos論壇發的BUG反饋,過了7天才有人來回復。地址(從3.0到3.1和3.2的BUG,官方幫忙看下),再看下egret我發的BUG反饋,當時是下班時間,然而第二天一早就回復我了。地址(Egret社區-BUG列表)
10、API問題:cocos經歷了3個大版本,官方API文檔也有的API,實際盡然是沒有的,官方回復是還沒加入js綁定。
11、跨平台問題:cocos2d-js經常是HTML5和JSB表現不一致。導致我們現在只能專注JSB而放棄HTML5版本。egret很少有這個問題。
12、
性能問題:先拋開runtime。如果你用了ccui,那麼我100%保證你的cocos2d-js的性能會被egret秒殺。再來說下native下面
的性能對比,cocos的人說egret是js寫的邏輯,而他們是綁定。那麼問題來了,在現在,js的邏輯產生的性能壓力一點都不是問題(參考
node.js,能用js寫伺服器了都)。主要的性能壓力其實是在渲染上面,而他們2個都是opengl作為渲染的。如果用了ccui,那麼還是被
egret秒殺。那ccui帶來的drawCall真是太!!再來談runtime,egret現在很多瀏覽器都集成了runtime(可以opengl
渲染代替canvas渲染),而cocos-js只是說在合作,已經慢了一步。
13、產品路線圖問題:cocos的幾個產品一心在弄3D,egret都已經自己搞了一個IDE了。開發基本的生活cocos都沒保障好,就去想和u3d打架!
14、內部問題:cocos估計內部很不和諧,ide據說是1個人在開發,studio是30個人(30個人整出這東西),而且studio是用的.NET搞的,跨平台最呵呵的技術!QT、AIR那些那麼多高效率,擴展性強的技術不用,選了個.NET
D. cocos2d.js 啟動loading每次都要3s才能載入完,用戶體驗不好。求大神指點優化和解決方案。
優化前游戲在iphone 4上從啟動畫面到渲染第一幀需要8秒左右,一直卡在啟動畫面不動。分析了一下代碼,懷疑AppDelegate::didFinishLaunchWithOptions里做了太多事情。用Instruments分析一下,果然didFinishLaunchWithOptions用了5s,其中ScriptingCore::runScript用了2.5s,向JSContext注入binding用了0.5s,剩下各種SDK初始化用了2s。優化方案
1. 加速代碼的執行速度
ScriptingCore::runScript
ScriptingCore::runScript主要在讀取js代碼、編譯然後執行。這里有幾個優化的方法:
1. 將JS代碼編譯成bytecode(jsc)再打到包里,這樣載入時就不用再編譯了。
2. 將JS代碼用UglifyJS、JSMin等壓縮工具壓縮,並合並成一個JS文件,減少磁碟IO的大小和次數。
壓縮打包JS會帶來一些問題。壓縮後錯誤信息會比較難看,因為symbol都被壓成1個字母了。另一個更嚴重的問題是,我們有動態更新代碼的需求,以前每次只需要更新改動的JS文件,打包成一個文件後每次都更新一整個文件。
並行化
Instruments的數據里可以看出有米廣告的SDK居然用了1.3s載入,在5s上也需要200ms,乾脆放到單獨的線程里去做,這樣不會block主線程(iPhone4還是單核的A4處理器,所以開多少線程都沒有什麼卵用,4s和iPad2之後用的至少是雙核的A5,收效就很明顯)。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
// 有米廣告的初始化代碼
[CocoBVideo cBVideoInitWithAppID:appID cBVideoAppIDSecret:secret];
[CocoBVideo cBCloseAlertViewWhenWantExit:false];
});
E. 自學cocos2d js游戲開發應該按什麼步驟進行
跟你簡要說一下我的自學路,以免你走彎路
背景:
有工作,而且很忙;在不影響工作基礎上用業余時間鼓搗(經常會因為工作耽擱學習進度);基本沒技術背景(初中qbasic、高中pascal半吊子),大學文科,工作也不是搞代碼。因此我感覺我的自學路跟你還是挺契合的。
1
兩年前的一天,決定要做獨立游戲製作人。選定引擎cocos2d,開始學習objective-c語言;(如果你打算只在iOS平台開發可以學obj-c配合cocos2d或者sprite kit;如果打算跨平台就要用cocos2d-x和c++了;當然unity什麼的也不錯但是我還沒嘗試過,一直很嚮往)
2
我跳過了iOS程序開發(似懂非懂看完了斯坦福那一系列的教學視頻),結合當時情況直接選擇了cocos2d引擎,這時開始接觸 @吳一刀 推薦的博客;我主要看的是子龍山人<子龍山人 - 博客園>、Ray Wenderlich<Ray Wenderlich>、Himi<黑米GameDev街區>這些博客里最基本的例子,知易那個以我當時的水平還看不懂。
3
嘗試開始設計自己的簡單游戲,我做打地鼠!當然比教學例子里的打地鼠復雜多了
4
這個過程中發現自己懂的實在是不夠,所以又開啃這本書:Learn cocos2d 2 by Steffen Itterheim & Andreas Low
5
慢慢的發現需要一些趁手的工具和編輯器,並發展出一套自己構建於cocos2d之上的游戲設計架構。我目前的情況是這樣:
關卡編輯我使用plist文件配合自己寫的類;
sprite sheet使用TexturePacker<TexturePacker>;
動畫/UI編輯最初自己手寫太累,後來選擇了cocosbuilder,請注意現在這個軟體已經停止維護,轉而引導用戶使用SpriteBuilder<SpriteBuilder>(域名都做了自動跳轉;SpriteBuilder我木有研究過,建議你研究一下)。
粒子編輯我自己還沒實際用到,如果真正需要我感覺cocosbuilder的夠我用的。//更新:後來用到了ParticleDesigner和cocosbuilder兩個軟體的粒子編輯混搭
我當時遇到的一個大麻煩是如何讓cocosbuilder、cocos2d版本互相兼容且cocosbuilder無問題。大概情況是這樣:cocosbuilder2.1和cocos2d-iphone2.0及2.1版本都不協調怎麼辦?;What version of Cocosbuilder and Cocos2d-iphone should I choose?
目前我使用的cocosbuilder 2.1版本(漸變層有bug、並且很可惜動畫播放完沒有觸發消息的機制,我只好把每個動畫時長都手動記錄一下自己處理)
======3月12日更新======
在 @GarfieldKwong 指點下發現這個版本動畫播放完是可以觸發消息機制的,更高級版本3.x支持的效果應該是在動畫中就加入callback的關鍵幀
新技能get√
具體代碼可見下面學習案例的第一個例子里Explosion部分
=====================
cocosbuider的學習可以看兩個例子Creating a Game with CocosBuilder;Introction to CocosBuilder;然後就是多用多嘗試。
6
整個學習過程要學會查資料、學會尋求幫助,我主要用的stackoverflow(話說剛剛發現stackoverflow的reputation喜過15,終於可以投票了:)
在學習過程中得到了子龍山人(我認為本尊是這位 @屈光輝 )、LearnCocos2d作者Steffen、 @kubisoft 以及眾多網上朋友的幫助,再次表示感謝。
7
硬體及開發者資格:看完c++開始看obj-c,這個過程一直是使用的vmware虛擬機安裝的mac系統寫程序;然後入手一個最便宜的mac pro、以及iPhone,嘗試玩各種游戲;從看c++開始大約過了1年半(已經有非常簡陋的游戲demo)才真正購入iOS開發者資格並開始真機測試。
8
嘗試過的一些其他工具、各種彎路和坑、以及發散內容:
可以拖拽方式寫代碼的stencyl <Stencyl: Make iPhone, iPad, Android & Flash Games without code>;
最初學的不是ojc-c而是譚浩強老師的c++程序設計(雖然有人不喜譚老師,但那書是中文的讓我對面對對象程序設計有一些初步的概念,再看英文的obj-c不至於太摸不著頭腦,反正手頭正好有這么一本買了6年沒看的c++。。。);
嘗試過<Tiled Map Editor>但自己目前的坑沒有用到;
嘗試過一點物理引擎和粒子,但自己目前的坑沒有用到;現在粒子用到了,做了火焰等效果,也挺美的;但是一定要注意CPU佔用優化,內存方面我最低支持4S沒遇到大問題
學習音樂製作,這個我小時候學琴一直也喜歡音樂所以有一點點底子,如果沒有基礎可能上手有門檻;開始用的軟體LMMS,但是音源插件在64位系統的問題我一直沒解決掉時間精力也不多,所以是暫時停滯了;最近發現Garage Band可能也可以寫歌;另外還試過一個很有歷史的微軟的音樂自動編輯器,很好玩,用來做背景音樂也不錯。
入手手繪板學畫畫(這中間糾結了好久才決定用點陣圖不用矢量圖),如果你能找到熱愛游戲的美術同學一起搞那最好不過。但是我一直對畫畫心癢難搔。。。所以入了這個深坑,曬一曬:
轉載
z
F. cocos2d-js為什麼這么耗電,手機很燙
初步判斷是由於系統或者軟體沖突導致的,您可以嘗試恢復出廠設置後嘗試,如果仍不能解決建議攜帶相關產品前往就近售後服務中心檢測處理。
G. js 一次載入幾千條數據 怎麼做優化
幾千條數據... 渲染上沒啥優化的
首先用戶不可能一次把所有的都看到,所以看到哪裡就載入哪專里的數據就行屬,相當於分頁;
JS載入肯定是動態插入DOM,盡量的少操作DOM,直接拼接為字元串一次性插入就行;
剩下的優化就是JS語法上的,比如減少內存開銷,語法規范等。
H. IOS內存怎麼優化調試
IOS內存優化調試的方法
基礎部分
1: 圖片內存大小小結
a: 圖片:是佔用內存的大戶,尤其是手機游戲圖片資源眾多。對圖片資源在內存中佔用量的計算成為J2ME游戲開發者的經常性工作,CoCoMo來解釋一下如何計算圖片在內存中的佔用量:內存佔用量=寬*高*像素位元組數,其中像素位元組數因機型而異。
例如一張64*64的圖片在7210上的內存佔用量=64*64*1.5=6144(位元組)=6K、在S60上的內存佔用量=64*64*2=8192 (位元組)=8K。像素位元組數因機型而異,例如 7210是4096色機型,也就是說用12位來表示一個像素,所以乘上1.5,而S60是65536色的機型,用16位來表示一個像素,所以乘上2。
b:Xcode中使用instruments 查看圖片內存的問題
如果使用的是模擬器那麼默認是小屏幕的,所以最大圖片是1024 *1024 * 4 = 4 M (1024 是圖片的寬高, 4表示的是圖片的存儲類型為4位元組的。也就是 RGBA8888)
如果你載入了圖片那麼就是使用了4M的內存。如果你需要渲染那麼還需要4M的內存。
載入一般都是 **load (NSString *)filename ,
渲染一般都是 Node addChild (Node)
2: 引用計數問題
引用計數增加的情況 : a: alloc 對象會使得對象引用數 +1
b:調用retain (具體細說一些實例如下)
->比如你是cocos2d用戶的會看到 addchild 會使子節點的引用計數+1
->CCArray 的addObject 也會使元素的引用計數+1
總結一下就是: 凡是添加到結合中的元素或者子節點不需要再去retain ,只需要在建立的時候調用release
減少的情況 : 調用release 使引用計數 -1(具體細說一些實例如下)
-> 集合調用remove/removeChildByTag 等等變形的
-> 創建的時候調用autorelease 。注意:如果你的對象是局部對象,而且創建的時候使用的是autorelease,
那麼在離開方法的時候如果你沒有retain 那麼這個對象將被dealloc(引用計數-1了)
I. cocos2d js 游戲中幀動畫太多怎麼優化
..png 是 後面再添上 字元串 ;%s%d, 依次得 fish1;fish3.png;
( i 循環語句png.png
這3部分合在一起.png; 是轉換格式
name_each 按字元串 %s 格式
i 按整型 %d 格式
, fish2.png .
例如 name_each 是 fish, i=3, 則 szName 得字元串 ,組成 文件名字 放入 szName
J. 如何優化載入太多第三方js導致的頁面緩慢
把頁面載入必須的js引用寫在head里,把頁面載入完執行的js引用寫在頁面底部,把不必要的js引用按需載入