1) Web app performance can be improved through code splitting techniques that divide JavaScript bundles into smaller chunks to reduce loading time. 2) Compiler optimizations like tree shaking, constant folding, and dead code elimination can help reduce code size and evaluation time by removing unused code. 3) Code splitting libraries like Webpack allow splitting code at the module or route level to preload important chunks and lazily load others on demand to improve performance.