精华内容
下载资源
问答
  • 最近研究特征提取,顺便找了一些以前的...但是经常地,某些题目要求貌似是快速排序,但是提到了异地处理方式。 一直也不理解这个本地和异地。最近刚搞明白。 归并排序就是一种out-of-place异地排序,而快速排序是in

    最近研究特征提取,顺便找了一些以前的数据结构程序练习一下。

    下面是一个快速排序的方法的博文:

    http://blog.csdn.net/jasonding1354/article/details/38224967

    但是经常地,某些题目要求貌似是快速排序,但是提到了异地处理方式。

    一直也不理解这个本地和异地。最近刚搞明白。

    归并排序就是一种out-of-place异地排序,而快速排序是in-place排序。

    展开全文
  • 提出了一种新的路由本地修复算法,将修复尽量限制在断链的局部范围内,减少了修复时间和降低路由维护的开销, 且不用考虑失效链路在整个路由上的相对位置,均可对其进行修复,提高了处理失效链路的能力,有利于提高...
  • 《GNSS接收机基带信号处理算法》分为7章,共介绍了有关GPS的C/A码和Galileo的E1码的11种不同的基带信号处理算法,包括本地信号的产生、捕获和跟踪算法、抗远近干扰及抗多径干扰算法等。捕获算法包括串并行相关捕获...
  • 考虑到GPS软件接收机与传统的GPS接收机的信号处理算法在捕获、跟踪、观测量提取等诸多方面的不同,该算法以本地预存的载波表与码表来产生跟踪中需要的本地载波与伪码,增加了软件接收机的信号处理效率。
  • 处理思路: 1.初始化创建Spark Masater的连接。 2.创建JavaRDD(lines)从HDFS(Hadoop分布式文件系统)读取一个txt文件,本例使用的文件为Top10.txt。 3.用lines创建JavaPairRDD 4.创建一个本地Top10数据 5....

    目的:找出Top10喵星人  

    处理思路:

    1.初始化创建Spark Masater的连接。

    2.创建JavaRDD(lines)从HDFS(Hadoop分布式文件系统)读取一个txt文件,本例使用的文件为Top10.txt。

    3.用lines创建JavaPairRDD

    4.创建一个本地Top10数据

    5.收集所有的本地top10并创建最终的top10列表

    步骤1:初始化创建Spark Masater

           SparkConf conf = new SparkConf().setAppName("Top10"); 
           JavaSparkContext ctx = new JavaSparkContext(conf);

    步骤2:创建JavaRDD(lines)

           JavaRDD<String> lines = ctx.textFile("hdfs://spark01:9000/Top10.txt");//测试数据如下:附1

    步骤3:用lines创建JavaPairRDD

          JavaPairRDD<String,Integer> pairs = lines.mapToPair(new PairFunction<String,String,Integer>(){
                public Tuple2<String,Integer> call(String s){
                    String[] tokens = s.split(",");
                    return new Tuple2<String,Integer>(tokens[0],Integer.parseInt(tokens[1]));
                }
            });

    步骤4:创建一个本地Top10

            //创建本地top10列表
            JavaRDD<SortedMap<Integer,String>> partitions = pairs.mapPartitions(
                    new FlatMapFunction<Iterator<Tuple2<String,Integer>>, SortedMap<Integer,String>>(){

                        @Override
                        public Iterable<SortedMap<Integer, String>> call(Iterator<Tuple2<String, Integer>> iter)
                                throws Exception {
                            SortedMap<Integer, String> top10 = new TreeMap<Integer,String>();
                            while(iter.hasNext()){
                                Tuple2<String,Integer> tuple = iter.next();
                                top10.put(tuple._2, tuple._1);
                                if(top10.size()>10){
                                    top10.remove(top10.firstKey());
                                }
                            }
                            return Collections.singletonList(top10);
                        }
            });

    步骤5:收集本地创建最终top10列表

           //创建最终的top列表 one
            SortedMap<Integer,String> finaltop10one = new TreeMap<Integer,String>();
            List<SortedMap<Integer,String>> alltop10 = partitions.collect();
            for(SortedMap<Integer,String> localtop10 : alltop10){
                for(Map.Entry<Integer, String> entry : localtop10.entrySet()){
                    finaltop10one.put(entry.getKey(), entry.getValue());
                    if(finaltop10one.size()>10){
                        finaltop10one.remove(finaltop10one.firstKey());
                    }
                }
            }
            //two
            SortedMap<Integer,String> finaltop10 = partitions.reduce(new Function2<
                    SortedMap<Integer,String>,
                    SortedMap<Integer,String>,
                    SortedMap<Integer,String>
                    >(){
                        private static final long serialVersionUID = 1L;

                        @Override
                        public SortedMap<Integer, String> call(SortedMap<Integer, String> m1,
                                SortedMap<Integer, String> m2) throws Exception {
                            
                            SortedMap<Integer,String> top10 = new TreeMap<Integer,String>();
                            
                            for(Map.Entry<Integer, String> entry : m1.entrySet()){
                                top10.put(entry.getKey(),entry.getValue());
                                if(top10.size()>10){
                                    top10.remove(top10.firstKey());
                                }
                            }
                            for(Map.Entry<Integer, String> entry : m2.entrySet()){
                                top10.put(entry.getKey(),entry.getValue());
                                if(top10.size()>10){
                                    top10.remove(top10.firstKey());
                                }
                            }
                            return top10;
                        }
            });

    最后一步:输出

             System.out.println("===tpo-10 list one====");
                for(Map.Entry<Integer, String> entry : finaltop10one.entrySet()){
                    System.out.println(entry.getKey() + "--" + entry.getValue());
             }

            System.out.println("===tpo-10 list ====");
                 for(Map.Entry<Integer, String> entry : finaltop10.entrySet()){
                      System.out.println(entry.getKey() + "--" + entry.getValue());
             }

    代码编译好后上传集群,输入命令(./Top.sh)运行脚本即可看到结果。

    ./Top.sh脚本文件如下:附2

    结果如下:附3

    附1:

    cat1,12
    cat2,13
    cat3,14
    cat4,15
    cat5,10
    cat100,100
    cat200,200
    cat300,300
    cat1001,1001
    cat67,67
    cat22,22
    cat23,23
    cat1000,1000
    cat2000,2000
    cat400,400
    cat500,500
    cat34,34
    cat78,78
    cat21,21
    cat37,37
    cat39,39
    cat88,88
    cat66,66
    cat666,666

    将以上数据保存为一个txt文件,用命令(hadoop fs -put Top10.txt /Top10.txt)上传到HDFS文件系统。

    附2:

    /usr/local/spark1.5/bin/spark-submit \
    --class cn.spark.study.core.Top10 \
    --num-executors 3 \
    --driver-memory 100m \
    --executor-memory 100m \
    --executor-cores 3 \
    /usr/local/spark-text/java/Top10/jtop10.jar \

    附3:

    ===tpo-10 list one====

    88--cat88
    100--cat100
    200--cat200
    300--cat300
    400--cat400
    500--cat500
    666--cat666
    1000--cat1000
    1001--cat1001
    2000--cat2000

    ===tpo-10 list ====
    88--cat88
    100--cat100
    200--cat200
    300--cat300
    400--cat400
    500--cat500
    666--cat666
    1000--cat1000
    1001--cat1001
    2000--cat2000

    展开全文
  • 设计了一种基于随机投影技术的满足本地差分隐私的高维数值型数据收集算法Multi-RPHM,在满足本地差分隐私的条件下,该算法处理维度较高的数据时能够保证所收集的数据的高效用。从理论上证明了该算法满足ε-本地差分...
  • 采用Qt做界面处理; 使用了 AES与RSA加密算法; 版本支持: Linux 64bit; Linux 32bit; 包含功能: 生成公私钥对; 对单文件进行加密,加密后的文件存储在与文件相同的目录下; 对单文件进行解密,解密后的文件存储在与文件...
    1. 该项目采用OpenSSL库作为底层加密支持;
    2. 采用Qt做界面处理;
    3. 使用了 AES与RSA加密算法;
    4. 版本支持: Linux 64bit; Linux 32bit;
    5. 包含功能:
      • 生成公私钥对;
      • 对单文件进行加密,加密后的文件存储在与文件相同的目录下;
      • 对单文件进行解密,解密后的文件存储在与文件相同的目录下;
      • 后期功能:
        • 对指定目录中所有的文件进行单独加密,加密后的文件存储于当前指定目录的加密目录下;
        • 将指定目录压缩后进行加密, 加密后的文件存储于当前指定目录上层;
    6. 界面介绍:
      • 启动程序: ./EncryDecryFile.sh
      • 打开程序后的界面( ./EncryDecryFile.sh ):
        这里写图片描述

    7. 创建公私密钥对;
      • 创建私钥:
        这里写图片描述

      • 输入生成的私钥名称:
        这里写图片描述

      • 生成私钥成功:
        这里写图片描述

      • 创建公钥:
        这里写图片描述

      • 输入生成的公钥名称:
        这里写图片描述

      • 生成公钥成功:
      • 这里写图片描述

      • 提示信息: 公私钥全部创建成功:
        这里写图片描述
    8. 加密文件:
      • 点击select Encry File 按钮: 选择将要加密的文件;
      • 点击 select Encry Key 按钮: 选择上步生成的公钥;
      • 点击 Encry 按钮; 生成加密文件, 存放于源文件相同的目录;
    9. 解密文件:
      • 点击 select Decry File 按钮, 选择将要解密的文件;
      • 点击 select Decry Key 按钮, 选择上步生成的私钥;
      • 点击 Decry 按钮, 生成解密文件, 存放于源文件相同的目录;

    10. 代码存放地址 : http://download.csdn.net/detail/yyxyong/9908799
    展开全文
  • 针对恶劣环境下能量感知算法感知性能差的问题,提出一种基于信任度分簇处理协作感知算法。在双门限能量检查算法基础上给出一种由采样信号均值、信噪比、采样信号相对误差组成的新信任度系数,并根据新信任度系数对...
  • >下的黄线因为CDT索引器没有找到路径,而NDK知道。进入项目属性页面,"C/C++ General" --> "Paths and Symbols",点击右边的"Add...",输入JNI相关头文件所在目录,类似...参考博客:《使用Eclipse编译本地代...

    >下的黄线

    因为CDT索引器没有找到路径,而NDK知道。进入项目属性页面,"C/C++ General" --> "Paths and Symbols",点击右边的"Add...",输入JNI相关头文件所在目录,类似"${env_var:ANDROID_NDK}/platforms/android-18/arch-arm/usr/include"。

    参考博客:《使用Eclipse编译本地代码》

    (5).C++文件包含.h头文件

    jni文件加下的C++程序包含的.h文件,.h文件中所有函数声明都必须在如下宏定义之中。否则,会报undefined reference to的错误。

    点击(此处)折叠或打开

    #ifdef __cplusplus

    extern "C" {

    #endif

    //一段代码

    #ifdef __cplusplus

    }

    #endif

    (6).java.lang.UnsatisfiedLinkError:Native method not found

    so文件编译生成后,运行时,有时候会遇到java.lang.UnsatisfiedLinkError:Native method not found问题。

    a. JNI方法头部大小写问题

    在C++中,方法名:Java_com_XXX,而不是java_com_XXX。建议直接从生成的.h头文件直接复制方法名到C或者C++文件中。

    b.C++文件问题

    如果是C++文件(.cpp或者.cc),要使用extern "C" {   }把本地方法括进去。

    c.往JNI方法中传值问题

    如,调用native方法sendSomeThing(Object object),如果传入的object为null,有可能会报上面错误。

    (7). SD卡中创建文件、写入文件、删除文件操作的支持

    在AndroidManifest.xml中加入访问SDCard的权限如下:

    点击(此处)折叠或打开

    要往SDCard存放文件,程序必须先判断手机是否装有SDCard,并且可以进行读写。

    (8). adb连接手机

    a. 在终端输入"lsusb",获取VID和PID。b. "gedit /etc/udev/rules.d/51-android.rules",添加下列规则: (记得替换其中的VID和PID)

    点击(此处)折叠或打开

    SUBSYSTEM=="usb", ATTR{idVendor}=="0a5c", ATTR{idProduct}=="e688", MODE="0666"c. "gedit~/.android/adb_usb.ini",添加VID

    点击(此处)折叠或打开

    0x0a5cd. 重启adb

    点击(此处)折叠或打开

    adb kill-server

    adb start-server

    (9).Eclipse项目名左边有红感叹号

    原因:工程中classpath中指向的包路径错误。

    办法:右键单击你的项目工程,找到“Build Path” --> “Configure Build Path...” ,然后上面有几个选项卡找到Libraries。这里看到的就是你工程里面引用的所有的 jar,看看是不是在某个jar图标上有个很小的黄色的感叹号? 如果有的话就没错了,先选中这个jar,点击右边的 “Remove” > 点击 “OK”。

    (10). omp.h arm_neon.h stdbool.h float.h等头文件路径添加

    右键点击项目名 --> C/C++ General --> Paths and Symbols --> GNU C++,点击右边的“Add...”,添加下述路径:

    点击(此处)折叠或打开

    /home/work/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/lib/gcc/arm-linux-androideabi/4.6/include

    为支持OpenMP,还需在jni文件夹下的Android.mk中添加如下:

    点击(此处)折叠或打开

    LOCAL_CFLAGS += -fopenmp

    LOCAL_LDFLAGS += -fopenmp

    (11). OpenCV for Android NDK的支持

    添加头文件路径:/home/work/android/workspace/OpenCV-2.4.8-android-sdk/sdk/native/jni/include,配置同上,具体如下图所示。OpenCV-2.4.8-android-sdk的下载地址:

    7fc531bc39064fca0e9afb8b2e56d44f.png

    OpenCV for Android除了对C语言的支持,OpenCV支持也支持Java,具体方法参考文章:编译为Release版本,并且使能TBB,运行速度较快,其它配置根据自己需要进行配置。

    (12). Android.mk与Application.mk(支持OpenCV4Android与OpenMP4Android)

    a. Android.mk

    其中,与OpenCV相关的有第4、6-11、15行;与OpenMP相关的有第13、14行。

    点击(此处)折叠或打开

    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    OPENCV_LIB_TYPE:=STATIC

    ifeq ("$(wildcard $(OPENCV_MK_PATH))","")

    #try to load OpenCV.mk from default install location

    include /home/work/android/workspace/OpenCV-2.4.8-android-sdk/sdk/native/jni/OpenCV.mk

    else

    include $(OPENCV_MK_PATH)

    endif

    LOCAL_CFLAGS += -fopenmp

    LOCAL_LDFLAGS += -fopenmp

    LOCAL_LDLIBS := -lz

    LOCAL_MODULE := ImageProcess

    LOCAL_SRC_FILES := ImageProcess.cpp

    include $(BUILD_SHARED_LIBRARY)

    b. Application.mk

    注意:对于OpenCV,支持ARMv7是很有必要的,测试表明,同样的运算过程,使用armeabi-v7a与使用armeabi相比,运算时间由原来的7.3ms较少到3.4ms。当然在Application.mk中,同时支持两种格式让应用加载时自动选择合适的格式去加载是最稳妥的。如果系统支持ARMv7,就会首先使用v7的库。

    点击(此处)折叠或打开

    APP_STL := gnustl_static

    APP_CPPFLAGS := -frtti -fexceptions

    APP_ABI := armeabi armeabi-v7a

    (13). ADB工具显示打印信息有时候Eclipse的LogCat不能正常显示打印信息,可以通过如下命令在终端里显示,可以同时开多个窗口显示多种打印信息。

    点击(此处)折叠或打开

    // xxx为Java代码中的Log.d()等函数中的标识字符串,或C++代码中的__android_log_print()标识字符串,不需要引号引起来

    adb logcat -v threadtime | grep xxx

    (14). Java与C/C++之间传递变量与数组的方法

    a. Java端的数组拷贝到本地

    点击(此处)折叠或打开

    unsigned char array[TEST_BUFFER_SIZE];

    //直接将Java端的数组拷贝到本地的数据中,建议使用这种方式,更加安全

    (*env)->GetByteArrayRegion(env, buffer, 0, len, array);

    b. 本地指针指向含有Java端数组的内存地址

    点击(此处)折叠或打开

    //将本地指针指向含有Java端数组的内存地址

    unsigned char * pBuffer = (*env)->GetByteArrayElements(env,buffer,NULL);

    if( pBuffer == NULL ) {

    LOG("GetByteArrayElements Failed!");

    return;

    }

    //可以通过pBuffer指针来访问这段数组的值

    ...

    //最后不要忘记释放指针(减小引用计数)

    (*env)->ReleaseByteArrayElements(env,buffer,pBuffer,0);

    c. 直接获取与Java端共享的内存块

    点击(此处)折叠或打开

    unsigned char * pBuffer = (unsigned char *)(*env)->GetDirectBufferAddress(env,buffer);

    if( pBuffer == NULL ) {

    LOG("GetDirectBufferAddress Failed!");

    return;

    }

    d. 传递JNI层的数组数据到Java端

    点击(此处)折叠或打开

    /传递JNI层的数组数据到Java端,有两种方法,一种是本例所示的通过返回值来传递

    //另一种是通过回调Java端的函数来传递(多用于jni线程中回调java层)

    unsigned char buffer[TEST_BUFFER_SIZE];

    ...

    //分配ByteArray

    jbyteArray array = (*env)->NewByteArray(env,TEST_BUFFER_SIZE);

    //将传递数据拷贝到java端

    (*env)->SetByteArrayRegion(env, array, 0, TEST_BUFFER_SIZE, buffer);

    e. Java层对应Native函数

    点击(此处)折叠或打开

    private byte[] mTestBuffer1;

    private byte[] mTestBuffer2;

    private ByteBuffer mDirectBuffer;

    private native void nativeSetBuffer1(byte[] buffer,int len);

    private native void nativeSetBuffer2(byte[] buffer,int len);

    private native void nativeSetDirectBuffer(Object buffer, int len);

    private native byte[] nativeGetByteArray();

    f. JNI层为C++函数时API的不同

    上诉JNI层的函数针对C语言源码,如果后缀为.cpp的C++程序,则有所不同。以上述b与d为例,如下修改:

    点击(此处)折叠或打开

    // 1. C语言版本

    // 1.1 Java ---> JNI

    unsigned char * pBuffer = (*env)->GetByteArrayElements(env,buffer,NULL);

    // 1.2 JNI ---> Java

    jbyteArray array = (*env)->NewByteArray(env,TEST_BUFFER_SIZE);

    (*env)->SetByteArrayRegion(env, array, 0, TEST_BUFFER_SIZE, buffer);

    // 2. C++版本

    // 2.1 Java ---> JNI

    unsigned char * pSrcBuffer = (unsigned char *)env->GetByteArrayElements(buffer,NULL);

    // 2.2 JNI ---> Java

    jbyteArray array = env->NewByteArray(TEST_BUFFER_SIZE2);

    env->SetByteArrayRegion(array, 0, TEST_BUFFER_SIZE, buffer);

    参考51CTO上tickTick的博客:《Android开发实践:Java层与Jni层的数组传递》 博客所附源码:f5eb4426879d9c4b4b2deb15679e0746.pngJNI_Buffer.zip

    (15). 使能Eclipse的并行化编译

    16b544c8ecfe3486714002161e200cd8.png

    (16). 头文件包含目录的导入与导出

    有时候导入其他人的工程时,所配置的包含目录不一致,导致Eclipse找不到正确的头文件,可以通过在工程属性里导出已有工程的头文件所在目录,导入到新工程。

    e7672384abf18a3e34667eec0e043b2f.png

    (17). JNI动态库命名规则

    实际生成的动态库名会在Android.mk中指定的库名前添加lib之后添加.so,即Android.mk中指定名为xxx的库,最终生成libxxx.so。值得注意的是:在Java中的加载函数中必须使用xxx,而不带前缀lib也不带后缀.so,如下所示。另外,在Android.mk中指定的库名如果带lib前缀,那么下述加载函数中指定的库名仍然是省略lib的名字。

    点击(此处)折叠或打开

    static {

    System.loadLibrary("BinaryAlg");

    }

    (18). 为JNI函数所在Java类添加同步机制

    在Android JNI层开发程序时,有时候在初始化函数中分配内存,在退出函数释放内存,在其它函数中使用这些内存。对于运算时间较长的函数,往往会遇到退出函数调用时,处理函数尚未执行完,因为两者由不同的线程执行。最终导致内存访问错误。处理函数访问已释放了的内存。

    可以在Java层的JNI函数所在类添加同步,使得部分或全部函数互斥访问。当然,也可以在JNI层添加同步机制。

    点击(此处)折叠或打开

    public class MyAlg {

    privateObject mSync=new Object();

    private native void myalg_init();

    private native void myalg_exit();

    private native byte[] myalg_process(byte[] inBuffer, int width, int height);

    public void MyAlgExit() {

    synchronized(mSync) {

    myalg_init();

    }

    }

    public void MyAlgExit() {

    synchronized(mSync) {

    myalg_exit();

    }

    }

    public byte[] MyAlgProcess(byte[] inBuffer, int width, int height) {

    synchronized(mSync) {

    return myalg_process(inBuffer, width, height);

    }

    }

    }

    2. 浮点优化选项 -ffast-math

    展开全文
  • 本文是一些机器人算法(特别是自动导航算法)的Python代码合集。其主要特点有以下三点:选择了...目录一、环境需求二、怎样使用三、本地化3.1扩展卡尔曼滤波本地化3.2无损卡尔曼滤波本地化3.3粒子滤波本地化3.4直方图...
  • 最近几个月,很多公司都在争辩说Java可能不是处理多核机器或虚拟化系统的最完善的语言。 因此,新的举措似乎可以从Java的硬件中获得额外的性能优势。 迄今为止,最有希望的追求似乎来自HSA Foundation(...
  • 我们已经推广了自然键轨道算法处理以周期对称为特征的系统。 虽然该代码仅要求可以从任何定期电子结构计算的输出中获取的信息,但它需要经过特殊格式化的输入文件。 我们为VASP和CRYSTAL软件包创建了接口,这些...
  • >粒子过滤器算法和里程表/激光雷达消息处理所需的函数 >粒子过滤器算法和地图表示所需的类 >节点,用于从Odometry和Lidar收集数据并将其存储在Data文件夹中 >使用“数据”文件夹在每个步骤中计算粒子,并将结果...
  • 来源:CSDN导读:本文是一些机器人算法(特别是自动导航算法)的Python...一、目录环境需求怎样使用本地化扩展卡尔曼滤波本地化无损卡尔曼滤波本地化粒子滤波本地化直方图滤波本地化映射高斯网格映射光线投射网格映射k...
  • Java虚拟机的内存模型分为五个部分,分别是程序计数器、Java虚拟机栈、本地方法栈、堆和方法区。 这五个区域既然是存储空间,那么为了避免Java虚拟机在运行期间内存存满的情况,就必须得有一个垃圾收集者的角色,不...
  • mapreduce排序算法 我们将继续执行有关实现MapReduce算法的系列文章... 使用MapReduce进行数据密集型文本处理-本地聚合第二部分 使用Hadoop计算共现矩阵 MapReduce算法–顺序反转 这篇文章介绍了在使用MapRed...
  • 我这里是在VS下创建的项目 直接复制进去就可以运行 里面还处理了无法保存到本地的方法
  • 在Mac OS 上安装OpenCV4.5.1时,下载的是源代码,进行本地编译和安装。安装好了之后,使用以前写的image stitching的代码进行测试,本以为会风平浪静,没想到弹出错误: xfeatures2d/src/surf.cpp:1029: error: (-...
  • 要安装用于处理提交和发布标准的支持依赖项,请运行以下命令: npm install 有关更多信息,请访问文档。 ➤ :wrench: 运行测试 说明如何运行此系统的自动化测试。 分解为端到端测试 解释这些测试测试什么以及为...
  • 统一图片输入格式 问题 在做一些图像处理项目时候,有些模型对输入图片格式有一定的要求,不一致的图片格式输入进去可能会造成一些错误情况...假设这里算法需要的是rgb类型格式的图片矩阵, 传入的是本地图片的名称img
  • 击上方“新机器视觉”,选择...ICP点云配准就是我们非常熟悉的点云处理算法之一。实际上点云数据在形状检测和分类、立体视觉、运动恢复结构、多视图重建中都有广泛的使用。点云的存储、压缩、渲染等问题也是研究的热...
  • 选举算法

    千次阅读 2012-08-17 12:22:27
    霸道算法 性质: 1、假定系统同步,并允许在选举期间进程崩溃,利用超时来检查进程故障,所有进程知道其它进程的标识符(优先符),并和所有这些进程通信。 2、构造一个可靠的故障检测器,最大消息传输...
  • 一般应用场景见下图所示,其中一台服务器只做ARR服务器,接受客户端发来的请求,根据配置的负载均衡算法,把请求转发给真正的请求处理服务器,如下图ServerFarm中的服务器B或C,由服务器B或服务器C来处理请求把处理...
  • 缓存算法

    2013-08-10 23:40:00
    缓存目的 a缓解网络因素瓶颈 b降低原始服务(比如数据库)请求...缓存基本处理步骤 1 接受网络请求 2 解析请求 3 查询本地是否有副本可用, 如果没有,到数据库获取一份副本,保存到本地 4检查副本实效性 ...
  • 自己写的基于微信小程序的手机端拍照并通过websocket协议上传至PC同时根据上传的图片做一个简单的工件缺陷的标注处理,写的非常简单,没有什么算法之类的,只是对自己学习图片传输及处理的一个记录,同时也是对自己...
  • B站算法动画: https://space.bilibili.com/22392939 事务处理(1) 事务处理保证了系统中所有的数据都是符合期望、互相关联的数据之间不会产生矛盾,即数据状态的 {% span red, 一致性(Consistency) %} 。 达成...
  • 该篇博客主要对JVM内存模型以及GC回收算法以自己的理解和认识做以记录。内存模型GC垃圾回收1.内存模型从上图可以看出,JVM分为方法区,虚拟机栈,本地方法栈,堆,计数器 5个区域。其中最为重要的就是栈和堆。栈和堆...
  • 本文译自 Working Through Data-Intensive Text Processing with MapReduce – Local Aggregation Part II 本文是《Data Intensive ...在第一篇里,我们讨论了使用本地聚合技术来减少shuffle阶段的网络传输数据量

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,079
精华内容 431
关键字:

本地处理算法