Avoid hashing the operator type in the GraphViewer priority node check unless the string has a chance of matching. (#7972)
* Avoid hashing the operator type in the GraphViewer priority node check unless the string has a chance of matching.
Below are perf numbers from a test that loads 16 models multiple times. I was checking that some unrelated changes didn't have unexpected perf cost and found the PriorityNodeCompare overwhelmed any contribution the other changes were making.
*Before*
CPU Time:74.678s
CPU Time for relevant Top Hotspots
std::_Hash_array_representation<char> 20.834s
onnxruntime::PriorityNodeCompare::IsHighPri 7.589s
onnxruntime::Graph::KahnsTopologicalSort 4.487s
*After*
CPU Time:47.103s
CPU Time for relevant Top Hotspots
onnxruntime::Graph::KahnsTopologicalSort 4.465s
onnxruntime::PriorityNodeCompare::IsHighPri 2.873s