Several performance improvements, mainly in loading and instancing scenes and resources.

A general speedup should be apparent, with even more peformance increase when compiling optimized.

WARNING: Tested and it seems to work, but if something breaks, please report.
This commit is contained in:
Juan Linietsky
2015-06-29 00:29:49 -03:00
parent 2b64f73b04
commit 95047562d7
62 changed files with 475 additions and 294 deletions

View File

@ -2556,9 +2556,9 @@ void GDScriptLanguage::init() {
//populate native classes
List<String> class_list;
List<StringName> class_list;
ObjectTypeDB::get_type_list(&class_list);
for(List<String>::Element *E=class_list.front();E;E=E->next()) {
for(List<StringName>::Element *E=class_list.front();E;E=E->next()) {
StringName n = E->get();
String s = String(n);

View File

@ -130,8 +130,8 @@ bool GridMap::_set(const StringName& p_name, const Variant& p_value) {
} else if (name.begins_with("areas/")) {
int which = name.get_slice("/",1).to_int();
String what=name.get_slice("/",2);
int which = name.get_slicec('/',1).to_int();
String what=name.get_slicec('/',2);
if (what=="bounds") {
ERR_FAIL_COND_V(area_map.has(which),false);
create_area(which,p_value);
@ -215,8 +215,8 @@ bool GridMap::_get(const StringName& p_name,Variant &r_ret) const {
r_ret= d;
} else if (name.begins_with("areas/")) {
int which = name.get_slice("/",1).to_int();
String what=name.get_slice("/",2);
int which = name.get_slicec('/',1).to_int();
String what=name.get_slicec('/',2);
if (what=="bounds")
r_ret= area_get_bounds(which);
else if (what=="name")