No, it is not good performance at all. Your client side code does not need to know if the server side is sync or async.
Instead just leave your code as Method1
and on the client code just have the client code generate both synchronous and asynchronous functions.
Via SvcUtil.exe
svcutil.exe /async /lang:csharp http://YourWcfUrlHere.com
Via GUI:
This will create int Method1(string userName, string companyName);
and Task<int> Method1Async(string userName, string companyName);
client side even though only int Method1(string userName, string companyName);
exists server side.