Okay. With no opcode cache in place, I have used php.ini to set the memory limit to 512M. phpinfo() reports that this is the memory limit.
When I run out of memory, say by working with a large data set, PHP reports that the allocated memory was just under 40M. How can this be? I checked the soft limit -- this was set to 400M. I changed this to 4000M and I'm able to perform the same task just fine.
Edit: I also set this to 419430400 so that it would just use 400M defined in bytes and it works as expected. The "M" doesn't seem to be working as expected.