kernel[x_]:=PDF[NormalDistribution[0,1],x]
Plot[kernel[x],{x,-5,5}, PlotRange->All]
f[x_]:=.2PDF[NormalDistribution[-3,.1],x] +.8*PDF[NormalDistribution[0,.3],x]+.4*PDF[NormalDistribution[2,.8],x]+.6*PDF[NormalDistribution[4,.2],x](* just a made up function with some peaks *)
Plot[f[x],{x,-5,5}, PlotRange->All]
(*conv=Compile[{{y,_Real}},NIntegrate[f[x]kernel[y-x],{x,-10,10}],"RuntimeOptions"->{"EvaluateSymbolically"->False}];*)
conv[x_]:=NIntegrate[f[xp]kernel[x-xp],{xp,-10,10}]
convtable=Table[{x,conv[x]},{x,-10,10,.1}];
functiontable=Table[f[x],{x,-10,10,.1}];
kerneltable=Table[kernel[x],{x,-10,10,.1}];
Manipulate[TableForm[{
Plot[{f[x],kernel[x0-x]},{x,-10,10},PlotRange->{0,Max[Max[functiontable],Max[kerneltable]]},ImageSize->Medium,Epilog->{Directive[{Thick,Red,Dashed}],Line[{{x0,0},{x0,10}}]}],"\n\narea of product equals \n"<>ToString[NIntegrate[f[x]*kernel[x0-x],{x,-10,10}],InputForm],
Plot[f[x]*kernel[x0-x],{x,-10,10},PlotRange->Max[functiontable]*Max[kerneltable],Filling->Axis,ImageSize->Medium],"\n",ListLinePlot[convtable,ImageSize->Medium,PlotRange->All,Epilog->{Directive[{Thick,Red,Dashed}],Line[{{x0,0},{x0,10}}],PointSize->Large,Point[{{x0,conv[x0]}}]}]}],{x0,-10,10}]