## Problem
Currently, even if `LAMBDA_REMOTE_DOCKER=1`, we unzip the zip files in the directory they are in, which is usually /var/lib/localstack, which usually has a bind mount to the host.
On docker desktop, due to the use of grpc-FUSE (on macos), this can be very slow, about 200 times slower than on volumes / directly on the host. With experimental virtio filesystem enabled (also on macos), this can be reduced to about 30 times as slow, but still problematic.
This means a lambda may take a lot of time processing, for each additional layer some more. This especially affects nodejs lambdas with huge node_modules folders.

## Probable solution
At least if `LAMBDA_REMOTE_DOCKER=1`, we should leave the initial zip files on the bind mount (for persistence etc), but the working directories after unzipping should be located on non-bind mounts, to speed up the IO for unzipping.
self.client.put(
                "{0}/functions/{1}/configuration".format(API_PATH_ROOT, self.FUNCTION_NAME),
                json=updated_config,
            ).get_data()
        )
        expected_response = {}
        expected_response["LastUpdateStatus"] = "Successful"
        expected_response["FunctionName"] = str(self.FUNCTION_NAME)
        expected_response["Runtime"] = str(self.RUNTIME)
        expected_response["CodeSize"] = self.CODE_SIZE
        expected_response["CodeSha256"] = self.CODE_SHA_256
        expected_response["Handler"] = self.HANDLER
        expected_response.update(updated_config)
        subset = {k: v for k, v in response.items() if k in expected_response.keys()}
        self.assertDictEqual(expected_response, subset)
        get_response = json.loads(
            self.client.get(
                "{0}/functions/{1}/configuration".format(API_PATH_ROOT, self.FUNCTION_NAME)
            ).get_data()
        )
        self.assertDictEqual(response, get_response)
    def test_java_options_empty_return_empty_value(self):
        lambda_executors.config.LAMBDA_JAVA_OPTS = ""
        result = lambda_executors.Util.get_java_opts()
        self.assertFalse(result)
    def test_java_options_with_only_memory_options(self):
        expected = "-Xmx512M"
        result = self.prepare_java_opts(expected)
        self.assertEqual(expected, result)
    def test_java_options_with_memory_options_and_agentlib_option(self):