graphql-kit / graphql-voyager

🛰️ Represent any GraphQL API as an interactive graph
https://graphql-kit.com/graphql-voyager/
MIT License
7.79k stars 517 forks source link

Out of memory on large schemas #63

Open jonmillar opened 6 years ago

jonmillar commented 6 years ago

Error: abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value 33554432, (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ") at Error at p (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:13446) at m (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:13597) at Ve (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:23682) at E (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:13675) at _ (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:14095) at w8 (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:2343558) at X5 (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:2319786) at MA (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:1290600) at TA (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:1290532) at OJ (blob:https://apis.guru/9de57295-33a6-4398-8229-46c5dadfee67:1:2084422) If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.DISMISS

image

Caused by a very large schema (which i cannot provide unfotunately, but its about 1026396 lines), any work around?

IvanGoncharov commented 6 years ago

@jonmillar Thanks for reporting. Memory limit is hardcoded here: https://github.com/APIs-guru/graphql-voyager/blob/24c895560d3e43aed8e7936c069c47e3583402ea/src/graph/viz-worker.worker.js#L6 If you have Node.js enviroment it would very helpfull if you find minimal limit that will work with your GraphQL schema. npm start supports hot-reloading so it should be pretty fast process.

divyamvpandian commented 4 years ago

Hi Can i know if changing the limit invoyager js from 2 * 16777216 to a higher value helped?