here is the profile test: (test during ~30 seconds)
Spoiler
Code:
date: Mon Jul 30 22:26:26 2012 map: de_dust2
type | name | calls | time / min / max
-------------------------------------------------------------------
n | precache_model | 2 | 0.001004 / 0.000421 / 0.000583
n | register_clcmd | 1 | 0.000008 / 0.000008 / 0.000008
n | register_think | 2 | 0.000010 / 0.000003 / 0.000008
n | create_entity | 2 | 0.000030 / 0.000004 / 0.000026
n | entity_set_string | 1 | 0.000004 / 0.000004 / 0.000004
n | entity_get_vector | 122 | 0.000395 / 0.000002 / 0.000156
n | entity_set_origin | 122 | 0.000726 / 0.000004 / 0.000010
n | entity_set_model | 1 | 0.000012 / 0.000012 / 0.000012
n | get_gametime | 244 | 0.000232 / 0.000001 / 0.000001
n | entity_set_float | 122 | 0.000151 / 0.000001 / 0.000001
n | set_pev | 123 | 0.000163 / 0.000001 / 0.000003
n | pev | 122 | 0.000273 / 0.000002 / 0.000003
n | engfunc | 123 | 0.000466 / 0.000003 / 0.000015
n | is_valid_ent | 121 | 0.000196 / 0.000001 / 0.000002
n | pev_valid | 121 | 0.000180 / 0.000001 / 0.000012
p | cr_custom | 1 | 0.000016 / 0.000016 / 0.000016
p | custom_think | 121 | 0.001218 / 0.000006 / 0.000384
p | custom_think2 | 121 | 0.000890 / 0.000006 / 0.000151
p | plugin_init | 1 | 0.000005 / 0.000005 / 0.000005
p | plugin_precache | 1 | 0.000007 / 0.000007 / 0.000007
1 natives, 0 public callbacks, 5 function calls were not executed.
not sure if test code is the best, but seem the fakemeta natives is a little fast that engine, like on natives:
pev_valid - is_valid_ent
EngFunc_SetOrigin - entity_set_origin
not sure if i have right, so wait to anybody clarify this confuse for me. What is best variant to use origins (get/set) on custom entity (who call very fast), engine or fakemeta ?
Engine is slightly faster because it generally contains less code. But in your example, even if engine is should be faster, you won't see any significant change and you should not bother about performance here, therefore you should use the way you prefer.
The main thing is to not use 3 natives with FM when another module native can do the same.
But when 2 natives from different modules do the same thing, it doesn't really matter.