Clone is faster apparently (Just tested for you with the following code):
local start = tick();
local p = Instance.new'Part';
p.Parent = workspace;
p.Anchored = true;
p.BrickColor = BrickColor.new('Bright red')--adding few properties to test the thing out
p.Locked = true;
print('Part created in '.. tick()-start..' seconds');
start = tick();
local clone = p:Clone();
clone.Parent = workspace;
print('Part cloned in '.. tick()-start..' seconds');
I feel like benchmarking these is absolutely pointless in this scenario because benchmarking isn’t representative of a real world application. Worrying about which one is faster is also pointless, it’s not like you’re saving significant amounts of time.
Just use whichever one is more comfortable for you. Just because one runs slower, doesn’t mean it creates lag. What matters is how you handle those parts later. Ultimately for both cloning and instancing, the new object is just a piece of memory detached from the DataModel that you’re modifying.
Only perk difference I can think of is that you’re going to feel more comfortable with clone because you’re copying something that’s already been made. If you instance the part, then you have to write out all the configurations and all.
Thanks for the info on PartCache, I never knew something like that existed.
I’m not an expert in these things and it might take me alot of time to get familiar with PartCache, Do you think it’s worth learning about it?