Performance Testing:
Performance Testing consists of purely Testing a application after development of application using any technology, understand the business critical scenarios, run the baseline(1 user load), benchmark(15% to 20% Load), Actual test(100%)
WLM(Business Scenarios, No of transactions & No of vusers), Pacing, think time, coding knowledge(C, Java, VB) whenever required etc, tool understanding, application feasibility with the performance tool and it is a part of performance engineering
Performance Engineering:
Performance engineering includes more of coding knowledge what ever be the technology in which the application is developed(.Net, Java, Flex etc), do all the above steps which you do as part of performance testing
Apart from this you also take ownership in interacting with various teams(development, qa, infra structure, admin, technology, networking and many more), understanding the architecture of application. Identify the tool which is used for monitoring the application memory which could be of any technology find which probing tool is used for application ex: IBM BMC, HP Diagnostics, HP Sitescope, Dynatrace, Introscope etc.
Understand the architecture of application helps people find the issues with application using adequate monitoring/profiling tools which helps you understand the issues with application memory, cpu, hotspots, jvm(java), .net(clr), heap, threads, jdbc(database connectivity), EJB, weblogic, parameters in server StuckThreadMaxTime, StuckThreadTimerInterval, PageCheckSeconds, MaxthreadCount, FileDescriptors, CodeOptimization etc
Understand the main parameters of Web/App/DB servers Web Servers (Web Requests, Web services, Routers), App Servers for memory leakage, threads, jdbc, heap, non heap
heap can be classified as eden space, survivor, young generation, virtual space I, Older generation(tenure), Virtual space II, Non Heap can be classified as permgen, pure native space etc, Db servers for ETL, Stored Procedures, SQL Queries, Indexes, Sequences etc
There are various to identify out of memory in jvm in java, clr in .net and other technologies in case of out of memory in jvm you can generate heap dump, In case of out of memory in server(server slowness, server stuck scenario) you can generate thread dump using jstack, Admin->server->monitoring->threads,Dweblogic.Log.Redirectstandtoserverlogenabled=true etc
You can configure probe tools to monitor infrastructure of application like Nagios, Sprient etc
Starting from the Initiation, Planning, Development, Testing, Execution, Preproduction(UAT), Go Live(Production) performance engineer is involved as part of building the application
Performance Engineer is equivalent to system architect and more than that.