com.graphhopper.util.Helper.cleanHack()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(6.9k)|赞(0)|评价(0)|浏览(123)

本文整理了Java中com.graphhopper.util.Helper.cleanHack()方法的一些代码示例,展示了Helper.cleanHack()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Helper.cleanHack()方法的具体详情如下:
包路径:com.graphhopper.util.Helper
类名称:Helper
方法名:cleanHack

Helper.cleanHack介绍

[英]Trying to force the release of the mapped ByteBuffer. See http://stackoverflow.com/q/2972986/194609 and use only if you know what you are doing.
[中]试图强制释放映射的ByteBuffer。看见http://stackoverflow.com/q/2972986/194609只有当你知道自己在做什么时才使用。

代码示例

代码示例来源:origin: graphhopper/graphhopper

  1. /**
  2. * @param forceClean if true the clean hack (system.gc) will be executed and forces the system
  3. * to cleanup the mmap resources. Set false if you need to close many MMapDataAccess objects.
  4. */
  5. void close(boolean forceClean) {
  6. clean(0, segments.size());
  7. segments.clear();
  8. Helper.close(raFile);
  9. if (forceClean)
  10. Helper.cleanHack();
  11. }

代码示例来源:origin: graphhopper/graphhopper

  1. @Override
  2. public void trimTo(long capacity) {
  3. if (capacity < segmentSizeInBytes) {
  4. capacity = segmentSizeInBytes;
  5. }
  6. int remainingSegNo = (int) (capacity / segmentSizeInBytes);
  7. if (capacity % segmentSizeInBytes != 0) {
  8. remainingSegNo++;
  9. }
  10. clean(remainingSegNo, segments.size());
  11. Helper.cleanHack();
  12. segments = new ArrayList<>(segments.subList(0, remainingSegNo));
  13. try {
  14. // windows does not allow changing the length of an open files
  15. if (!Constants.WINDOWS) {
  16. // reduce file size
  17. raFile.setLength(HEADER_OFFSET + remainingSegNo * segmentSizeInBytes);
  18. }
  19. } catch (Exception ex) {
  20. throw new RuntimeException(ex);
  21. }
  22. }

代码示例来源:origin: graphhopper/graphhopper

  1. ioex = tmpex;
  2. trial++;
  3. Helper.cleanHack();
  4. try {

代码示例来源:origin: graphhopper/graphhopper

  1. @Override
  2. public void clear() {
  3. // If there is at least one MMap DA then do not apply the cleanHack
  4. // for every single mmap DA as this is very slow if lots of DataAccess objects were collected
  5. // => forceClean == false
  6. MMapDataAccess mmapDA = null;
  7. for (DataAccess da : map.values()) {
  8. if (da instanceof MMapDataAccess)
  9. mmapDA = (MMapDataAccess) da;
  10. removeDA(da, da.getName(), false);
  11. }
  12. if (mmapDA != null)
  13. cleanHack();
  14. map.clear();
  15. }

代码示例来源:origin: com.graphhopper/graphhopper

  1. /**
  2. * @param forceClean if true the clean hack (system.gc) will be executed and forces the system
  3. * to cleanup the mmap resources. Set false if you need to close many MMapDataAccess objects.
  4. */
  5. void close( boolean forceClean )
  6. {
  7. clean(0, segments.size());
  8. segments.clear();
  9. Helper.close(raFile);
  10. if (forceClean)
  11. Helper.cleanHack();
  12. }

代码示例来源:origin: com.rgi-corp/graphhopper

  1. /**
  2. * @param forceClean if true the clean hack (system.gc) will be executed and forces the system
  3. * to cleanup the mmap resources. Set false if you need to close many MMapDataAccess objects.
  4. */
  5. void close(boolean forceClean) {
  6. clean(0, segments.size());
  7. segments.clear();
  8. Helper.close(raFile);
  9. if (forceClean)
  10. Helper.cleanHack();
  11. }

代码示例来源:origin: com.graphhopper/graphhopper

  1. boolean releaseSegment( int segNumber )
  2. {
  3. ByteBuffer segment = segments.get(segNumber);
  4. if (segment instanceof MappedByteBuffer)
  5. {
  6. ((MappedByteBuffer) segment).force();
  7. }
  8. Helper.cleanMappedByteBuffer(segment);
  9. segments.set(segNumber, null);
  10. Helper.cleanHack();
  11. return true;
  12. }

代码示例来源:origin: com.rgi-corp/graphhopper

  1. boolean releaseSegment(int segNumber) {
  2. ByteBuffer segment = segments.get(segNumber);
  3. if (segment instanceof MappedByteBuffer) {
  4. ((MappedByteBuffer) segment).force();
  5. }
  6. Helper.cleanMappedByteBuffer(segment);
  7. segments.set(segNumber, null);
  8. Helper.cleanHack();
  9. return true;
  10. }

代码示例来源:origin: com.graphhopper/graphhopper-core

  1. @Override
  2. public void trimTo(long capacity) {
  3. if (capacity < segmentSizeInBytes) {
  4. capacity = segmentSizeInBytes;
  5. }
  6. int remainingSegNo = (int) (capacity / segmentSizeInBytes);
  7. if (capacity % segmentSizeInBytes != 0) {
  8. remainingSegNo++;
  9. }
  10. clean(remainingSegNo, segments.size());
  11. Helper.cleanHack();
  12. segments = new ArrayList<>(segments.subList(0, remainingSegNo));
  13. try {
  14. // windows does not allow changing the length of an open files
  15. if (!Constants.WINDOWS) {
  16. // reduce file size
  17. raFile.setLength(HEADER_OFFSET + remainingSegNo * segmentSizeInBytes);
  18. }
  19. } catch (Exception ex) {
  20. throw new RuntimeException(ex);
  21. }
  22. }

代码示例来源:origin: com.graphhopper/graphhopper-core

  1. /**
  2. * @param forceClean if true the clean hack (system.gc) will be executed and forces the system
  3. * to cleanup the mmap resources. Set false if you need to close many MMapDataAccess objects.
  4. */
  5. void close(boolean forceClean) {
  6. clean(0, segments.size());
  7. segments.clear();
  8. Helper.close(raFile);
  9. if (forceClean)
  10. Helper.cleanHack();
  11. }

代码示例来源:origin: com.rgi-corp/graphhopper

  1. @Override
  2. public void trimTo(long capacity) {
  3. if (capacity < segmentSizeInBytes) {
  4. capacity = segmentSizeInBytes;
  5. }
  6. int remainingSegNo = (int) (capacity / segmentSizeInBytes);
  7. if (capacity % segmentSizeInBytes != 0) {
  8. remainingSegNo++;
  9. }
  10. clean(remainingSegNo, segments.size());
  11. Helper.cleanHack();
  12. segments = new ArrayList<ByteBuffer>(segments.subList(0, remainingSegNo));
  13. try {
  14. // windows does not allow changing the length of an open files
  15. if (!Constants.WINDOWS) {
  16. // reduce file size
  17. raFile.setLength(HEADER_OFFSET + remainingSegNo * segmentSizeInBytes);
  18. }
  19. } catch (Exception ex) {
  20. throw new RuntimeException(ex);
  21. }
  22. }

代码示例来源:origin: com.rgi-corp/graphhopper

  1. @Override
  2. public void clear() {
  3. // If there is at least one MMap DA then do not apply the cleanHack
  4. // for every single mmap DA as this is very slow if lots of DataAccess objects were collected
  5. // => forceClean == false
  6. MMapDataAccess mmapDA = null;
  7. for (DataAccess da : map.values()) {
  8. if (da instanceof MMapDataAccess)
  9. mmapDA = (MMapDataAccess) da;
  10. removeDA(da, da.getName(), false);
  11. }
  12. if (mmapDA != null)
  13. Helper.cleanHack();
  14. map.clear();
  15. }

代码示例来源:origin: com.graphhopper/graphhopper-core

  1. ioex = tmpex;
  2. trial++;
  3. Helper.cleanHack();
  4. try {

代码示例来源:origin: com.graphhopper/graphhopper

  1. @Override
  2. public void clear()
  3. {
  4. // If there is at least one MMap DA then do not apply the cleanHack
  5. // for every single mmap DA as this is very slow if lots of DataAccess objects were collected
  6. // => forceClean == false
  7. MMapDataAccess mmapDA = null;
  8. for (DataAccess da : map.values())
  9. {
  10. if (da instanceof MMapDataAccess)
  11. mmapDA = (MMapDataAccess) da;
  12. removeDA(da, da.getName(), false);
  13. }
  14. if (mmapDA != null)
  15. Helper.cleanHack();
  16. map.clear();
  17. }

代码示例来源:origin: com.graphhopper/graphhopper

  1. @Override
  2. public void trimTo( long capacity )
  3. {
  4. if (capacity < segmentSizeInBytes)
  5. {
  6. capacity = segmentSizeInBytes;
  7. }
  8. int remainingSegNo = (int) (capacity / segmentSizeInBytes);
  9. if (capacity % segmentSizeInBytes != 0)
  10. {
  11. remainingSegNo++;
  12. }
  13. clean(remainingSegNo, segments.size());
  14. Helper.cleanHack();
  15. segments = new ArrayList<ByteBuffer>(segments.subList(0, remainingSegNo));
  16. try
  17. {
  18. // windows does not allow changing the length of an open files
  19. if (!Constants.WINDOWS)
  20. // reduce file size
  21. {
  22. raFile.setLength(HEADER_OFFSET + remainingSegNo * segmentSizeInBytes);
  23. }
  24. } catch (Exception ex)
  25. {
  26. throw new RuntimeException(ex);
  27. }
  28. }

代码示例来源:origin: com.graphhopper/graphhopper-core

  1. @Override
  2. public void clear() {
  3. // If there is at least one MMap DA then do not apply the cleanHack
  4. // for every single mmap DA as this is very slow if lots of DataAccess objects were collected
  5. // => forceClean == false
  6. MMapDataAccess mmapDA = null;
  7. for (DataAccess da : map.values()) {
  8. if (da instanceof MMapDataAccess)
  9. mmapDA = (MMapDataAccess) da;
  10. removeDA(da, da.getName(), false);
  11. }
  12. if (mmapDA != null)
  13. cleanHack();
  14. map.clear();
  15. }

代码示例来源:origin: com.graphhopper/graphhopper

  1. Helper.cleanHack();
  2. try

代码示例来源:origin: com.rgi-corp/graphhopper

  1. ioex = tmpex;
  2. trial++;
  3. Helper.cleanHack();
  4. try {

代码示例来源:origin: com.rgi-corp/graphhopper

  1. newSegments = segmentsToMap;
  2. clean(0, segments.size());
  3. Helper.cleanHack();
  4. segments.clear();
  5. } else {

代码示例来源:origin: com.graphhopper/graphhopper

  1. Helper.cleanHack();
  2. segments.clear();
  3. } else

相关文章