You can use stored procedure if all your Create/Update/delete operations happen through stored procedures only.
Definitly it will improve the performance. I have implemented certain operations (not auditing) through triggers and later moved it to stored procedures. I can see the difference.
If you are inserting the audit record to another table, I believe stored procedure may be the best option as you know (from the stored procedure parameters) what fields you are going to update. Specially on insert, without touching the virtual / actual table you can insert the new record to the audit table.
Cheers,
Prithiviraj Kulasingham
http://preethiviraj.blogspot.com/