![]() Removing float and int from the leaf struct cut memory usage by 40%.īack to improving merge time again. Since the smart merge works on strings most of the time, it makes no sense to keep the former two around. The is not stored as a union but a int,float and string field. The YAML structure replicated the one used inside Unity itself, and it contains a distinction between int,float and string values for leaf nodes in the yaml tree. Now that merge time had been improved, we moved our attention to memory consumption. However, the fact that the source diffs could now be reused for the two other merges more than doubled the speed of the process, and generated a slight decrease in memory usage. With immutability comes the issue of having to copy content from source diffs when creating the merged diff instead of simply referencing. dlang) only logical immutability is used and this works just fine. Since c++ doesn’t have built in support for immutability (like e.g. ![]() This was fixed by making the diff structure immutable. Unfortunately, as stated above, the source diffs are rendered invalid when doing a merge and, as such, cannot be reused. Merging cannot be shared since that is where the outcome differs for the three. Much of the setup done by the first can be reused by the next two: Reading and parsing the files, creating mine/base and incoming/base diff. ![]() The first glaring issue is that three merges are being done from scratch in the situation where a conflict is present.
0 Comments
Leave a Reply. |