Большинство ответов здесь в основном не совпадают с точкой: есть причина, по которой использование _alloca()
потенциально хуже, чем просто хранение больших объектов в стеке.
Основное различие между автоматическим хранилищем и _alloca()
заключается в том, что последний страдает от дополнительной (серьезной) проблемы: выделенный блок не контролируется компилятором , поэтому компилятор не может оптимизировать или перерабатывать его.
Сравнить:
while (condition) {
char buffer[0x100]; // Chill.
/* ... */
}
с:
while (condition) {
char* buffer = _alloca(0x100); // Bad!
/* ... */
}
Проблема с последним должна быть очевидной.
В этом случае вы можете использовать данные JSON. Вы можете сохранить свои данные JSON в файле, перехватить ваш запрос в Interceptors и отправить имитирующие данные из файла, как показано ниже.
@Injectable()
export class SampleInterceptor implements HttpInterceptor {
constructor(private http: HttpClient) {}
intercept(
request: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
const httpRequest = new HttpRequest(
<any>request.method,
"./../../assets/sample.json"
);
request = Object.assign(request, httpRequest);
request = request.clone();
return next.handle(request);
}
}
Вы можете установить json-server
, а затем просто использовать ложные данные из него.
npm install -g json-server
Создайте файл db.json
с некоторыми данными
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
Запустите сервер JSON
json-server --watch db.json
Теперь, если вы перейдете на http: / / localhost: 3000 / posts / 1 , вы получите
{ "id": 1, "title": "json-server", "author": "typicode" }