FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
llfio/example/sparse_array.cpp at develop · ned14/llfio · GitHub
ned14
/
llfio
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
57
Star
1.1k
Code
Issues
23
Pull requests
6
Discussions
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
llfio
/
example
/
sparse_array.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
62 lines (47 loc) · 1.83 KB
Breadcrumbs
llfio
/
example
/
sparse_array.cpp
Copy path
File metadata and controls
62 lines (47 loc) · 1.83 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
Examples of LLFIO use
(C) 2018 - 2022 Niall Douglas <http://www.nedproductions.biz/> (2 commits)
File Created: Aug 2018
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License in the accompanying file
Licence.txt or at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Distributed under the Boost Software License, Version 1.0.
(See accompanying file Licence.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#
include
"
../include/llfio.hpp
"
#
include
<
future
>
#
include
<
iostream
>
#
include
<
vector
>
//
clang-format off
#
ifdef
_MSC_VER
#
pragma
warning(disable: 4706)
//
assignment within conditional
#
endif
#
if
!defined(__SIZE_MAX__) || __SIZE_MAX__ > 999999999999UL
void
sparse_array
()
{
//
! [sparse_array]
namespace
llfio
=
LLFIO_V2_NAMESPACE
;
//
Make me a 1 trillion element sparsely allocated integer array!
llfio::mapped_file_handle mfh =
llfio::mapped_temp_inode
().
value
();
//
On an extents based filing system, doesn't actually allocate any physical
//
storage but does map approximately 4Tb of all bits zero data into memory
(
void
) mfh.
truncate
(
1000000000000ULL
*
sizeof
(
int
));
//
Create a typed view of the one trillion integers
llfio::attached<
int
>
one_trillion_int_array
(mfh);
//
Write and read as you see fit, if you exceed physical RAM it'll be paged out
one_trillion_int_array[
0
] =
5
;
one_trillion_int_array[
999999999999ULL
] =
6
;
//
! [sparse_array]
}
#
endif
int
main
()
{
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL